我试图在 Session 变量中存储一个对象,我将类标记为可序列化。然而,此类派生自未序列化的抽象基类。我收到一个错误。问题是我在开发机器上没有得到任何错误,但只在我无权访问的生产和暂存区。我不需要序列化类来将对象存储到我的开发机器中的 session ,但它在暂存环境中给出了序列化错误。因此,我将该类标记为可序列化,并请求在暂存环境中进行部署。现在我再次收到序列化错误,指出基类未标记为可序列化。我是否也需要序列化基类。
public abstract class A
{
///Properties
}
[Serializable]
public class B:A
{
///Properties
}
最佳答案
是的,如异常所示:
Type 'A' in Assembly '...' is not marked as serializable
因此,要解决您的问题 - 也向类 A 添加 [Serializable]
。
另一方面,该属性不是继承的,因此如果您只将它添加到 A,则 B 不会被视为可序列化。
关于c# - 我是否需要序列化抽象基类以使派生类可序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38193784/