2010-04-19 53 views
0

我有一個裝飾有類型的KnownType屬性的類。這是不允許的?DataContractSerializer KnownType屬性不被尊重?

[KnownType(typeof(Occ600UIConfig))] 
    public class Occ600UIConfig 
    { } 

如果是這樣,爲什麼DCS會拋出以下異常?

{「在第1點的位置誤差387。 元 ‘http://schemas.microsoft.com/2003/10/Serialization/Arrays:Value’ 包含 ‘http://schemas.datacontract.org/2004/07/OCC600.Infrastructure.Dictionary.BusinessEntities:Occ600UIConfig’ 數據契約的數據。串並轉換器具有映射到 本合同的任何類型的無 知識。通過使用KnownTypeAttribute 屬性或通過將其添加到列表傳遞給 d已知類型的 例如, - 添加對應於「Occ600UIConfig」到 已知類型的列表的類型 ataContractSerializer「。}}

回答

4

KnownType屬性用於定義和」公佈「可能也在給定上下文中使用的基類的後代類。

但在WCF數據類應主要以[DataContract]屬性(你想用一個[DataMember]屬性包括所有成員)註明:

[DataContract] 
public class Occ600UIConfig 
{ } 

如果你沒有任何繼承層次,你從不需要KnownType屬性。