我是否需要序列化抽象基类以使派生类可序列化

时间:2016-07-05 00:47:52

标签: c# inheritance serialization

我正在尝试将对象存储在Session变量中,我将该类标记为可序列化。但是,此类派生自未序列化的抽象基类。我收到了一个错误。问题是我在开发机器中没有出现任何错误,只有在我无法访问的生产和暂存区域。我没有要求序列化类以将对象存储到我的开发机器中的会话,但它在暂存环境中给出了序列化错误。所以我将该类标记为可序列化并请求在临时环境中进行部署。现在我再次收到序列化错误,该错误表明基类未标记为可序列化。我是否还需要序列化基类。

public abstract class A
{
    ///Properties
}
[Serializable]
public class B:A
{
      ///Properties
}

1 个答案:

答案 0 :(得分:2)

是的,正如例外情况所示:

  

装配'...'中的类型'A'未标记为可序列化

因此,要解决您的问题,请将[Serializable]添加到A类。

另一方面,该属性不是继承的,因此如果您只将其添加到A,则B不会被视为Serializable。