5

J'ai beaucoup d'exceptions personnalisées dans le code existant de ma solution. Et je veux à tester tousQuelles sont les exigences minimales à avoir, pour dire qu'une exception personnalisée est sérialisable?

les exceptions personnalisées introduites dans mes projets pour voir si elles sont Serializable (XML)

Alors, que devez mes tests vérifier de passer lorsqu'une exception personnalisée est sérialisable?

Quelles sont les exigences minimales pour avoir à dire qu'une exception personnalisée est sérialisable?

+0

les Faire sérialisable est pas un problème, tant que le nom du type se sérialisé. La désérialisation serait la partie la plus difficile, les exceptions obtiennent invariablement leurs valeurs de propriété de leur constructeur. Là encore, désérialiser une exception d'un fichier XML n'a pas beaucoup de sens. –

Répondre

2

Vous pouvez vérifier si toutes vos classes d'exception implémentent l'interface IXmlSerializable:

Assert.IsTrue(yourExceptionInstance is IXmlSerializable); 
+0

Je crois que l'OP fait référence à la sérialisation XML et dans ce cas l'attribut Serializable n'a aucun impact. –

+0

@ João, merci, fixé :) –

1

La classe de base Exception expose une propriété publique Data qui met en œuvre IDictionary qui ne sont pas pris en charge par le mécanisme de sérialisation XML par défaut .NET.

Donc, je crois que pour vous permettre de sérialiser XML une exception, vous serez obligé d'implémenter IXmlSerializable afin de fournir une logique de sérialisation XML personnalisée. Sur cette base, vous pouvez vérifier que vos classes implémentent cette interface spécifique, comme Frédéric l'a démontré dans sa réponse.

1

Je suggère d'utiliser la méthode xmlSerializer.CanDeserialize (..).

MSDN

0
typeof(MyException).IsSerializeable 
Questions connexes