Reputation: 53243
I have bunch of custom exceptions in my solution's legacy code. And I want to test all
the custom exceptions introduced in my projects to see if they are Serializable (XML)
So, what should my tests check to pass when a custom exception is serializable?
What are the least requirements to have to say that a custom exception is serializable?
Upvotes: 5
Views: 125
Reputation: 17499
I would suggest using xmlSerializer.CanDeserialize(..) method.
Upvotes: 1
Reputation: 57688
The Exception
base class exposes a public property Data
which implements IDictionary
which is not supported by the default .NET XML serialization mechanism.
So I believe that in order for you to XML serialize an exception you will be forced to implement IXmlSerializable
in order to provide custom XML serialization logic.
Based on that you can check that your classes implement that specific interface, like Frédéric demonstrated in his answer.
Upvotes: 1
Reputation: 262939
You can check if all your exception classes implement the IXmlSerializable interface:
Assert.IsTrue(yourExceptionInstance is IXmlSerializable);
Upvotes: 2