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

时间:2008-10-01 21:11:32

标签: c# .net sqlexception

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

嗯,严格地说,没有......你可以在Exception的数据字典中添加任何类型......但你为什么要问?你认为它们将被序列化的界限是什么?

答案 2 :(得分:0)

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

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