【问题标题】:Do I need to serialize the abstract base class to make the derived classes serializable我是否需要序列化抽象基类以使派生类可序列化
【发布时间】:2016-07-05 00:47:51
【问题描述】:

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

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

【问题讨论】:

    标签: c# inheritance serialization


    【解决方案1】:

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

    程序集“...”中的类型“A”未标记为可序列化

    所以要解决您的问题 - 也将 [Serializable] 添加到 A 类。

    另一方面,该属性不是继承的,所以如果你只将它添加到 A 中,B 将不会被视为可序列化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 2011-01-20
      • 2011-02-13
      相关资源
      最近更新 更多