说自定义异常是可序列化的最低要求是什么?

时间:2010-12-09 12:30:36

标签: c# .net serialization exception-handling custom-exceptions

我的解决方案遗留代码中有很多自定义异常。我希望测试所有

我的项目中引入的自定义例外,以查看它们是否可序列化(XML)

那么,当自定义异常可序列化时,我的测试应该检查什么?

要说自定义异常是可序列化的最低要求是什么?

4 个答案:

答案 0 :(得分:2)

您可以检查所有异常类是否实现了IXmlSerializable接口:

Assert.IsTrue(yourExceptionInstance is IXmlSerializable);

答案 1 :(得分:1)

Exception基类公开了一个实现Data的公共属性IDictionary,默认的.NET XML序列化机制不支持该属性。

所以我相信,为了让您对XML进行序列化异常,您将被迫实现IXmlSerializable以提供自定义XML序列化逻辑。

基于此,您可以检查您的类是否实现了特定的界面,如Frédéric在其答案中所示。

答案 2 :(得分:1)

我建议使用xmlSerializer.CanDeserialize(..)方法。

MSDN

答案 3 :(得分:0)

typeof(MyException).IsSerializeable