IDeserializationCallback vs OnDeserializedAttribute

Soweit ich weiß, können sowohl die IDeserializationCallback-Schnittstelle als auch das OnDeserialized-Ereignis verwendet werden, wenn ein Objekt nach der Deserialisierung eine Aufgabe ausführen muss.

IDeserializationCallback:

[Serializable]
public class Foo : IDeserializationCallback
{
    public void OnDeserialization(object sender)
    {
         // initialize unserialized fields etc.
    }
}

OnDeserialized-Ereignis:

[Serializable]
public class Foo
{
    [OnDeserialized]
    public void OnDeserialized(StreamingContext context)
    {
         // initialize unserialized fields etc.
    }
}

Gibt es bestimmte Vor- / Nachteile oder Szenarien, in denen Sie eines vor dem anderen wählen würden?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage