可序列化的inheritance
如果从Serializable类inheritance的东西,子类还是Serializable?
这取决于你的意思是可序列化的。 如果你的意思是CLI标记(即[Serializable]
属性),那么这不会被inheritance(下面的certificate)。 您必须将每个派生类显式标记为[Serializable]
。 但是,如果您的意思是ISerializable
接口,那么是的:接口实现是inheritance的,但是您需要小心 – 例如使用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 {}