5

Ich habe eine Reihe von benutzerdefinierten Ausnahmen im Legacy-Code meiner Lösung. Und ich will alle in meinen ProjektenWelche Anforderungen müssen am wenigsten erfüllt sein, um zu sagen, dass eine benutzerdefinierte Ausnahme serialisierbar ist?

die individuelle Ausnahmen eingeführt zu testen, um zu sehen, ob sie Serializable sind (XML)

Also, was soll meine Tests überprüfen passieren, wenn eine benutzerdefinierte Ausnahme ist serialisierbar?

Was sind die wenigsten Anforderungen zu sagen, dass eine benutzerdefinierte Ausnahme serialisierbar ist?

+0

sie serialisierbar zu machen ist kein Problem, solange der Typname serialisiert wird. Deserialisierung wäre der schwierige Teil, Ausnahmen erhalten ihre Eigenschaftswerte immer aus ihrem Konstruktor. Andererseits macht die Deserialisierung einer Ausnahme aus einer XML-Datei wenig Sinn. –

Antwort

2

Sie können prüfen, ob alle Ihre Ausnahmeklassen implementieren, um die IXmlSerializable Schnittstelle:

Assert.IsTrue(yourExceptionInstance is IXmlSerializable); 
+0

Ich glaube, das OP bezieht sich auf XML Serialisierung und in diesem Fall hat Serializable Attribut keine Auswirkungen. –

+0

@ João, danke, behoben :) –

1

Die Exception Basisklasse macht eine öffentliche Eigenschaft Data die IDictionary implementiert, die nicht durch den Standard-.NET XML-Serialisierung Mechanismus unterstützt wird.

Also ich glaube, dass, damit Sie XML eine Ausnahme serialisiert werden Sie gezwungen werden, IXmlSerializable zu implementieren, um benutzerdefinierte XML-Serialisierungslogik bereitzustellen.

Darauf basierend können Sie überprüfen, ob Ihre Klassen diese spezifische Schnittstelle implementieren, wie Frédéric in seiner Antwort gezeigt hat.

1

Ich würde vorschlagen, xmlSerializer.CandDeserialize (..) -Methode.

MSDN

0
typeof(MyException).IsSerializeable 
Verwandte Themen