逆シリアル化されたオブジェクトからメソッドを明示的に呼び出すことなく、Protobufによって直されたばかりのオブジェクトにイベントを処理したり、コールバックする方法はありますか?Protobuf .NET Post逆シリアル化ハンドラ
例えば、私は次のクラスを持っていると言う:
[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はシリアル化された値をまだ適用していないので、コンストラクタでそれを呼び出すことは無意味です。そのため、値の適用が終了したときを知る方法があると良いでしょう。オブジェクトを使用しているすべての場所で、デシリアライズ後の呼び出しをリファクタリングする必要性を排除するために、これを実現する方法があることを期待しています。
私はいくつかのアイデアを持っていますが、誰かが私がまだ見ていないより良いものを持っている場合に備えて、私はそれらを校正する道を進む前に質問を投稿すると思いました。前もって感謝します。
私はシンプルなソリューションを愛しています。これは、私が行ったばかげたルート(デシリアライズされたオブジェクトを反映している静的なデシリアライゼーションクラスとメソッドなどを呼び出す方法など)よりも簡単です。ありがとうMarc、これは私が必要としていたものです。 – Ryan