C#序列化/继承
可能重复:C#序列化/继承,c#,serialization,inheritance,C#,Serialization,Inheritance,可能重复: 序列化是可继承的吗 例如: [Serializable] class A { } class B : A { } 如果我尝试序列化/反序列化类B的实例,我会得到一个异常,表明该类未标记为可序列化。因此,问题是:序列化是可继承的吗?我只是不知道怎么做,还是每个需要序列化的类都需要显式地标记为这样?这是: 请务必注意,不能继承Serializable属性。如果从MyObject派生新类,则新类也必须用属性标记,否则无法序列化 还应标记子类以使其可序列化: [Serializable
序列化是可继承的吗 例如:
[Serializable]
class A
{
}
class B : A
{
}
如果我尝试序列化/反序列化类B的实例,我会得到一个异常,表明该类未标记为可序列化。因此,问题是:序列化是可继承的吗?我只是不知道怎么做,还是每个需要序列化的类都需要显式地标记为这样?这是:
请务必注意,不能继承Serializable属性。如果从MyObject派生新类,则新类也必须用属性标记,否则无法序列化
还应标记子类以使其可序列化:
[Serializable]
class B : A { }
小调;在这种情况下,该属性的
继承的
属性并不直接相关(尽管它恰好是正确的)。这是因为在元数据层,[Serializable]
不是作为属性实现的,而是作为CLI类标志实现的(您可以在IL流中检查)。感谢您的注释,这肯定不是次要的@Marc Gravell:更改了文本并删除了属性引用。。。谢谢