我需要序列化抽象基类才能使派生类可序列化吗?

3
我试图将一个对象存储在会话变量中,我已经将这个类标记为可序列化。然而,这个类是从一个未被序列化的抽象基类派生而来的。我遇到了一个错误。问题是,在我的开发机器上没有任何错误,但只有在我无法访问的生产和暂存区域才会出现错误。在我的开发机器上,我不需要序列化该类就可以将对象存储到会话中,但在暂存环境中却出现了序列化错误。因此,我将该类标记为可序列化,并请求在暂存环境中部署。现在我又遇到了序列化错误,错误显示基类没有标记为可序列化。我需要将基类也标记为可序列化吗?
public abstract class A
{
    ///Properties
}
[Serializable]
public class B:A
{
      ///Properties
}
1个回答

5

是的,如异常所示:

在汇编“...”中类型“ A”未标记为可序列化

因此,要解决您的问题-也要向A类添加[Serializable]

另一方面,该属性不会被继承,因此如果仅将其添加到A,则B将不被视为可序列化。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接