有什么方法可以防止DataContractSerializer的反序列化忽略丢失的值并继续反序列化其余数据,而不是放弃所有内容,抛出异常并返回NULL吗?

我正在积极地构建应用程序,因此自然而然地,它的对象会频繁地添加新字段,并且获取的越远,每次任何对象类型获得一个额外的字段时重新输入所有数据的痛苦就越大。

最佳答案

您可以使用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; }
}

10-08 05:05