我正在使用无属性的DataContract序列化(.NET 3.5 SP 1)。
我希望将所有DataContracts更改为EmitDefaultValue
到false
。
我怎么能做到这一点?
答案 0 :(得分:4)
如果您想使用适用于某个媒体资源的EmitDefaultValue
property on the DataMemberAttribute
,那么您必须将DataContractAttribute
应用于该类型。
这有一个令人遗憾的副作用,即必须将DataMemberAttribute
属性放在您希望序列化的所有类型的成员上(在您使用无属性的数据合同序列化之前假设的那些)由于使用属性时,数据合同序列化的性质是全部的。
答案 1 :(得分:0)
您可以尝试实施ISeriaizable
interface。
在这种情况下,DataContractSerializer
会调用您的代码来执行映射,从而为您提供完全控制。