Sha*_*lin 3 c# inheritance serialization
我试图在 Session 变量中存储一个对象,我将类标记为可序列化。然而,此类派生自未序列化的抽象基类。我收到错误。问题是我在开发机器中没有收到任何错误,但仅在我无权访问的生产和暂存区域中收到任何错误。我不需要序列化类来将对象存储到我的开发计算机中的会话,但它在暂存环境中给出了序列化错误。因此,我将该类标记为可序列化,并请求在临时环境中进行部署。现在我再次收到序列化错误,表明基类未标记为可序列化。我是否还需要序列化基类?
public abstract class A
{
///Properties
}
[Serializable]
public class B:A
{
///Properties
}
Run Code Online (Sandbox Code Playgroud)
是的,正如例外所示:
程序集“...”中的类型“A”未标记为可序列化
因此,要解决您的问题 -[Serializable]也将 a 添加到 A 类。
另一方面,该属性不是继承的,因此如果您仅将其添加到 A,B 将不会被视为可序列化。