デシリアライズされたオブジェクトからメソッドを明示的に呼び出さなくても、Protobufによってデシリアライズされたばかりのオブジェクトにイベントを処理したりコールバックしたりする方法はありますか?
たとえば、次のクラスがあるとします。
[ProtoContract]
public class Customer
{
[ProtoMember(1)]
public string FirstName { get; set; }
[ProtoMember(2)]
public string MiddleName { get; set; }
[ProtoMember(3)]
public string LastName { get; set; }
[ProtoMember(4)]
public Dictionary<int, string> Addresses { get; set; }
public Customer()
{
//Subscibe to a Protobuf deserialization complete event?
}
public void ValidateAddresses()
{
//Some routine to validate addresses
}
}
デシリアライズされたコードブロック内のデシリアライズされたオブジェクトから明示的に呼び出すことなく、「ValidateAddresses」を呼び出す方法はありますか?Protobufはまだシリアル化された値を適用していないため、コンストラクターで呼び出すことは無意味です。したがって、値の適用がいつ終了したかを知る方法があると便利です。オブジェクトが使用されているすべての場所でデシリアライズ後の呼び出しをリファクタリングする必要をなくすために、これを実現する方法があることを望んでいます。
私にはいくつかのアイデアがありますが、私がまだ見ていないより良いものを誰かが持っている場合に備えて、それらを証明する道を進む前に質問を投稿すると思いました(これは非常に可能性が高いです)。前もって感謝します。