Wcf 是否不尊重DataContractSerializer KnownType属性?
我有一个类,它用一个KnownType属性修饰,该属性的类型为class。这是不允许的吗Wcf 是否不尊重DataContractSerializer KnownType属性?,wcf,datacontracts,Wcf,Datacontracts,我有一个类,它用一个KnownType属性修饰,该属性的类型为class。这是不允许的吗 [KnownType(typeof(Occ600UIConfig))] public class Occ600UIConfig { } 如果是,为什么DCS会抛出以下异常 第1行第387位出现{”错误。 元素 '' 包含 '' 数据协定。反序列化程序没有 映射到的任何类型的知识 此合同。添加类型 对应于“Occ600UIConfig”的 已知类型的列表-例如, 通过使用KnownTy
[KnownType(typeof(Occ600UIConfig))]
public class Occ600UIConfig
{ }
如果是,为什么DCS会抛出以下异常
第1行第387位出现{”错误。
元素
''
包含
''
数据协定。反序列化程序没有
映射到的任何类型的知识
此合同。添加类型
对应于“Occ600UIConfig”的
已知类型的列表-例如,
通过使用KnownTypeAttribute
属性或将其添加到列表中
传递给的已知类型的
DataContractSerializer。“}
KnownType
属性用于定义和“公布”基类的子类,这些子类也可能在给定上下文中使用
但是您在WCF中的数据类应该主要使用[DataContract]
属性进行标记(以及您希望包含[DataMember]
属性的所有成员):
如果没有任何继承层次结构,则永远不需要KnownType属性。KnownType属性用于定义和“公布”基类的子类,这些子类也可能在给定上下文中使用 但是您在WCF中的数据类应该主要使用
[DataContract]
属性进行标记(以及您希望包含[DataMember]
属性的所有成员):
如果没有任何继承层次结构,则永远不需要KnownType属性
[DataContract]
public class Occ600UIConfig
{ }