如果我正在序列化并稍后反序列化类,DataContractSerializer我如何控制未序列化的属性的初始值?
考虑下面的Person课程.它的数据协定设置为序列化FirstName和LastName属性,但不是IsNew属性.我想IsNew初始化为TRUE是否将新Person实例化为新实例或从文件反序列化.
这很容易通过构造函数来完成,但据我所知,它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;
}
}
Run Code Online (Sandbox Code Playgroud)