2010-11-02 5 views

Répondre

4

Si vous lisez la documentation sur le OnDeserialized attribute et le IDeserializationCallback interface, vous verrez que cette interface a été implémentée dans .NET 1.0, alors que l'attribut a été ajouté dans .NET 2.0, avec un certain nombre d'attributs connexes supplémentaires qui fournissent un contrôle plus précis du processus de sérialisation/désérialisation.

Dans la section remarques OnDeserializedAttribute:

Cet attribut peut être utilisé au lieu de l'interface IDeserializationCallback .

Donc, pour répondre à votre question, oui, ils sont redondants. Une supposition éclairée serait que les marqueurs basés sur les attributs sont la manière préférée de faire cela, car ils vous donnent plus de flexibilité et ne nécessitent pas d'interface distincte à utiliser. L'interface est là parce que si elles l'ont enlevé, elle casserait la compatibilité en arrière avec le code plus ancien.

Questions connexes