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

发布于 2024-10-06 15:56:09 字数 185 浏览 3 评论 0原文

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

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

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

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

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

羞稚 2024-10-13 15:56:09

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

Assert.IsTrue(yourExceptionInstance is IXmlSerializable);

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

Assert.IsTrue(yourExceptionInstance is IXmlSerializable);
谢绝鈎搭 2024-10-13 15:56:09

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

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

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

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.

椒妓 2024-10-13 15:56:09

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

MSDN

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

MSDN

莳間冲淡了誓言ζ 2024-10-13 15:56:09
typeof(MyException).IsSerializeable
typeof(MyException).IsSerializeable
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文