我的解决方案的遗留代码中有一堆自定义异常。我想测试所有
我的项目中引入的自定义异常,以查看它们是否可序列化(XML)
那么,当自定义异常可序列化时,我的测试应该检查什么才能通过?
要说自定义异常是可序列化的,最低要求是什么?
我的解决方案的遗留代码中有一堆自定义异常。我想测试所有
我的项目中引入的自定义异常,以查看它们是否可序列化(XML)
那么,当自定义异常可序列化时,我的测试应该检查什么才能通过?
要说自定义异常是可序列化的,最低要求是什么?
您可以检查您的所有异常类是否都实现了IXmlSerializable接口:
Assert.IsTrue(yourExceptionInstance is IXmlSerializable);
我建议使用 xmlSerializer.CanDeserialize(..) 方法。
Exception
基类公开了一个Data
实现的公共属性,IDictionary
默认 .NET XML 序列化机制不支持该属性。
所以我相信,为了让您对异常进行 XML 序列化,您将被迫实施IXmlSerializable
以提供自定义 XML 序列化逻辑。
基于此,您可以检查您的类是否实现了该特定接口,就像 Frédéric 在他的回答中所展示的那样。
typeof(MyException).IsSerializeable