5

我的解决方案的遗留代码中有一堆自定义异常。我想测试所有

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

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

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

4

4 回答 4

2

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

Assert.IsTrue(yourExceptionInstance is IXmlSerializable);
于 2010-12-09T12:38:46.790 回答
1

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

MSDN

于 2010-12-09T13:11:08.780 回答
1

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

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

基于此,您可以检查您的类是否实现了该特定接口,就像 Frédéric 在他的回答中所展示的那样。

于 2010-12-09T12:53:39.870 回答
0
typeof(MyException).IsSerializeable
于 2010-12-09T15:53:00.560 回答