クラスをシリアライズし、後でデシリアライズする場合、シリアライズさDataContractSerializer
れていないプロパティの初期値をどのように制御できますか?
Person
以下のクラスを考えてみましょう。そのデータ コントラクトは、FirstName
およびLastName
プロパティをシリアル化するように設定されていますが、プロパティはシリアル化されていません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;
}
}