继承树上的反序列化顺序

时间:2012-12-01 21:39:05

标签: .net deserialization

我有一个标记为Serializable的基类,以及标记为Serializable的派生类。我希望在反序列化期间在基类中执行某些操作,因此声明了一个标记为OnDeserializing的方法,但重要的是此方法将在任何派生类的OnDeserializing方法之前执行。
派生类也可能由其他人编写。
我可以依赖基类的方法在派生类中的任何序列化方法之前调用吗? 我会用SoapFormatter

1 个答案:

答案 0 :(得分:2)

我要走出去,并说它可能会首先找到派生的方法,而不是基于我所见的使用反射用于其他目的的基本方法。我建议您可能希望显式调用子进程的基本行为,而不是依赖于使用该属性标记的方法的任何顺序。如果较低级别的对象是可直接实例化的,而不是抽象的,因此也可能具有OnDeserializing标记的方法,您可能需要设置标志以指示该级别是否已被处理。