可序列化的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 {}