参考是什么力量让一个自定义的.NET异常序列化的正确方法?结果 和是否所有的.NET异常序列化? ...

我的例外为什么要序列化的吗点击 有人说:“这可以被认为是一个错误,”如果由第三方库中定义一个自定义异常,是不是序列化。为什么?

为什么有例外比在这方面,其他类有什么不同?

有帮助吗?

解决方案

由于您的异常可能需要不同的应用程序域之间进行整理,如果他们不(正常),序列化,你会失去宝贵的调试信息。不像其它类,你会不会在你的异常是否会被编组控制 - 它会


当我的意思是“你不会有控制”的意思是你通常创建类具有存在的有限空间和存在是众所周知的。如果这是一个返回值,并有人试图给它调用不同的AppDomain(或在不同的机器上),他们会得到一个错误,并且可以只说“不要用这种方式。”来电者知道他们必须把它转换成可以(通过包装方法调用)序列化一个类型。但是,由于异常向上冒泡到最顶端,如果没有抓到他们可以超越AppDomain的界限,你甚至不知道你有。您的自定义应用程序异常20级深在不同的AppDomain可能例外报道的Main()并没有什么沿途将会把它转换成一个序列化的例外你。

其他提示

除了Talljoe的回答,您可以例外跨Web服务通过为好,在这种情况下,除了需要是可序列化/ deserializable因此它可以变成XML和Web服务发送

我认为,所有类的默认应该是序列化,除非它们含有一类是明确不可序列。这很烦人不能够传输一类,只是因为一些设计者没有想到它。

用同样的事“最终”,所有的变量应该是“最后的”默认情况下,除非你明确说他们是“易变”。

另外,我不知道它是有道理有一个变量不是私有的。

哦,需要设计我自己的语言。

但是我的回答是,你不知道你的异常将被使用,它们被认为是能够跨越远程调用抛出。

其中是可序列化所需对象另一个地方是Asp.Net会话。 我们最后一个异常存储在会话,而不是串行化异常需要额外的翻译他们的信息存储为可序列化(指定原始异常作为内部没有帮助)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top