可序列化继承
本文关键字:继承 序列化 | 更新日期: 2023-09-27 17:47:48
如果某个东西从Serializable类继承,那么子类仍然是Serializable吗?
这取决于什么是可序列化的。如果您指的是CLI标记(即[Serializable]
属性),则这是继承的而不是(如下证明)。必须将每个派生类显式标记为[Serializable]
。然而,如果您指的是ISerializable
接口,那么是的:接口实现是继承的,但您需要小心——例如,使用virtual
方法,以便派生类可以将其数据贡献给序列化。
using System;
class Program
{
static void Main()
{
Console.WriteLine(typeof(Foo).IsSerializable); // shows True
Console.WriteLine(typeof(Bar).IsSerializable); // shows False
}
}
[Serializable]
class Foo {}
class Bar : Foo {}