如果某些东西继承自可序列化类,那么子类是否仍然可序列化?
最佳答案
这取决于你的意思是可序列化。如果您指的是 CLI 标记(即 [Serializable]
属性),那么这是不继承的(下面的证明)。您必须将每个派生类显式标记为 [Serializable]
。但是,如果您指的是 ISerializable
接口(interface),那么是的:接口(interface)实现是继承的,但您需要小心 - 例如通过使用 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 {}
关于c# - 可序列化继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/182873/