如果我正在序列化并稍后反序列化一个类,DataContractSerializer
我该如何控制未序列化的属性的初始值?
考虑下面的Person
课程。它的数据契约被设置为序列化FirstName
andLastName
属性而不是IsNew
属性。我想IsNew
将一个新的 Person 实例化为新实例还是从文件中反序列化,我想初始化为 TRUE。
这很容易通过构造函数完成,但据我所知,它DataContractSerializer
不会调用构造函数,因为它们可能需要参数。
[DataContract(Name="Person")]
public class Person
{
[DataMember(Name="FirstName")]
public string FirstName { get; set; }
[DataMember(Name = "LastName")]
public string LastName { get; set; }
public bool IsNew { get; set; }
public Person(string first, string last)
{
this.FirstName = first;
this.LastName = last;
this.IsNew = true;
}
}