IDeserializationCallback vs OnDeserializedAttribute

Насколько я понимаю, интерфейс 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.
    }
}

Есть ли какие-то конкретные плюсы / минусы или сценарии, в которых вы бы выбрали один из других?

Ответы на вопрос(4)

Ваш ответ на вопрос