我的解决方案遗留代码中有很多自定义异常。我希望测试所有
我的项目中引入的自定义例外,以查看它们是否可序列化(XML)
那么,当自定义异常可序列化时,我的测试应该检查什么?
要说自定义异常是可序列化的最低要求是什么?
答案 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(..)方法。
答案 3 :(得分:0)
typeof(MyException).IsSerializeable