2008-10-01 13 views

Répondre

0

Eh bien, à strictement parler, non ... vous pouvez ajouter n'importe quel type au dictionnaire de données d'une exception ... mais pourquoi le demanderiez-vous? À quelle frontière pensez-vous qu'ils vont être sérialisés?

0

Si l'exception doit être propagée entre les limites de domaine d'application, les exceptions et les données qu'elles contiennent doivent être sérialisables.

Un tel scénario serait une application client-serveur communiquant à distance. Si le serveur génère une exception et qu'il doit être traité côté client, le framework devra le sérialiser/le désérialiser.

1

Oui, ils doivent l'être. C'est parce que l'implémentation d'ISerializable dans le type Exception ajoute la propriété Data dans StreamingContext. Et tous les objets de la propriété Data (qui est un IDictionary) doivent être sérialisables. Les classes d'exception et les instances sérialisables sont une bonne pratique, même si elles ne permettent pas de créer une application distribuée.