【问题标题】:Do objects added to the SqlException.Data collection need to be [Serializable]?添加到 SqlException.Data 集合的对象是否需要 [Serializable]?
【发布时间】:2008-10-01 21:11:32
【问题描述】:

添加到 SqlException.Data 集合的对象是否需要 [Serializable]?

【问题讨论】:

    标签: c# .net sqlexception


    【解决方案1】:

    是的,他们需要。这是因为 ISerializable 在 Exception 类型中的实现将 Data 属性添加到 StreamingContext 中。并且 Data 属性(它是一个 IDictionary)中的所有对象都必须是可序列化的。 即使不打算构建分布式应用程序,让异常类和实例可序列化也是一种好习惯。

    【讨论】:

      【解决方案2】:

      好吧,严格来说,不...您可以将任何类型添加到异常的数据字典中...但是您为什么要问呢?您认为它们将跨越什么界限?

      【讨论】:

        【解决方案3】:

        如果要跨 appdomain 边界传播异常,则异常及其包含的数据需要可序列化。

        这样的场景之一是客户端-服务器应用程序通过远程处理进行通信。如果服务器抛出异常并且需要在客户端处理,框架将不得不对其进行序列化/反序列化。

        【讨论】:

          猜你喜欢
          • 2014-12-09
          • 1970-01-01
          • 2021-11-19
          • 2011-05-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多