据我了解,当对象在反序列化后需要执行某些任务时,可以同时使用 IDeserializationCallback 接口和 OnDeserialized 事件。
IDeserializationCallback:
[Serializable]
public class Foo : IDeserializationCallback
{
public void OnDeserialization(object sender)
{
// initialize unserialized fields etc.
}
}
OnDeserialized 事件:
[Serializable]
public class Foo
{
[OnDeserialized]
public void OnDeserialized(StreamingContext context)
{
// initialize unserialized fields etc.
}
}
是否有任何特定的优点/缺点或场景,您会选择其中一个?