IDeserializationCallback vs OnDeserializedAttribute
Según tengo entendido, tanto la interfaz IDeserializationCallback como el evento OnDeserialialized pueden usarse cuando un objeto necesita realizar alguna tarea después de ser deserializado.
IDeserializationCallback:
[Serializable]
public class Foo : IDeserializationCallback
{
public void OnDeserialization(object sender)
{
// initialize unserialized fields etc.
}
}
Evento OnDeserializado:
[Serializable]
public class Foo
{
[OnDeserialized]
public void OnDeserialized(StreamingContext context)
{
// initialize unserialized fields etc.
}
}
¿Hay ventajas / desventajas específicas o escenarios en los que elegiría uno sobre el otro?