我必须使用C#中的默认值删除datamember。
类的结构是[DataContract]
public class class1
{
[DataMember]
public string A1;
[DataMember]
public int A2;
[DataMember]
public class2 class2Instance;
}
[DataContract]
public class class2
{
[DataMember]
public string B1;
[DataMember]
public int B2;
}
我使用xmlserializer
序列化class1。
我不想序列化具有默认值的属性。请建议。
答案 0 :(得分:0)
您可以使用ShouldSerialize
方法。
只需在方法名称的末尾添加成员名称(ShouldSerializeA1
为A1
),XmlSerializer
将调用它以了解它是否应该可序列化。添加你的逻辑(在你的情况下是默认的)
public class class1
{
[DataMember]
public string A1;
[DataMember]
public int A2;
[DataMember]
public class2 class2Instance;
public Boolean ShouldSerializeA1()
{
return this.A1 != String.Empty;
}
public Boolean ShouldSerializeA2()
{
return this.A2 != 0;
}
public Boolean ShouldSerializeclass2Instance()
{
return this.class2Instance != null;
}
}