pencilCake
pencilCake

Reputation: 53243

What are the least requirements to have, to say a custom exception is serializable?

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

Answers (4)

Jaster
Jaster

Reputation: 8579

typeof(MyException).IsSerializeable

Upvotes: 0

Manish Basantani
Manish Basantani

Reputation: 17499

I would suggest using xmlSerializer.CanDeserialize(..) method.

MSDN

Upvotes: 1

João Angelo
João Angelo

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

Frédéric Hamidi
Frédéric Hamidi

Reputation: 262939

You can check if all your exception classes implement the IXmlSerializable interface:

Assert.IsTrue(yourExceptionInstance is IXmlSerializable);

Upvotes: 2

Related Questions