将类添加到异常"数据"属性

时间:2015-07-29 14:33:31

标签: c# class exception serialization

我有一个名为Coordinate的简单类,它包含X / Y Z值。

我正在进行一些处理并创建一个"例外"。

我使用一些自定义值填充ex.Data属性。

一切顺利,直到我尝试添加"新坐标(x / y / z)"进入数据属性。

数据属性包含"对象"。

抛出异常,它告诉我,我无法添加不可序列化的对象"或类似的东西。

我决定在data属性中添加3个条目(x / y / z分别为double值),一切都很好。

我不太明白我需要添加到我的课程中,所以我只能添加一个Coordinate变量的实例。

2 个答案:

答案 0 :(得分:2)

要使类可序列化,请使用SerializableAttribute

[Serializable]
public class Coordinate
{
   ...
}

这是将对象标记为serialiazable的最基本方法,还有其他方法可以让您更好地控制如何对象的序列化/反序列化。

  

将SerializableAttribute属性应用于某个类型时,默认情况下会对所有私有和公共字段进行序列化。您可以通过实现ISerializable接口来更精细地控制序列化,以覆盖序列化过程。

答案 1 :(得分:1)

可能就像将您的课程标记为Serializable一样简单:

[Serializable]
public class Coordinate
{
    // ..
}