如果某些东西继承自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 {}