Если я сериализую, а затем десериализую класс, используя 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;
}
}