有没有办法处理事件或回调到刚刚被 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 还没有应用序列化的值,所以如果有办法知道它何时完成应用这些值会很好。我希望有一种方法可以实现这一点,以消除在使用对象的任何地方重构后反序列化调用的需要。
我有一些想法,但我想我会在开始验证它们之前发布问题,以防有人有更好的我还没有看到的问题(这很可能)。提前致谢。