有没有一种方法可以处理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尚未应用序列化的值,所以希望有一种方式来知道何时完成应用值。我希望能够实现这一点,以消除需要在使用对象的所有地方重构后反序列化调用的需求。
我有一些想法,但我想在我开始证明它们之前发布问题,以防有人有更好的想法(这很可能)。提前感谢您的帮助。