如果只缺少一个值,DataContractSerializer反序列化将完全失败

时间:2013-01-20 11:30:32

标签: c# serialization datacontractserializer

有没有办法阻止DataContractSerializer反序列化忽略缺失值并继续反序列化其余数据,而不是放弃所有内容,抛出异常并返回NULL

我正在积极构建应用程序,因此它的对象自然会频繁地添加新字段,并且随着它越来越多,每次任何对象类型获得时都必须重新输入所有数据的痛苦。额外的领域。

1 个答案:

答案 0 :(得分:1)

您可以使用IsRequired属性的DataMember属性。

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datamemberattribute_properties.aspx

示例:

[DataContract]
public class Data
{
     [DataMember]
     public string Required { get; set; }

     [DataMember(IsRequired=false)]
     public string? NotRequired { get; set; }
}