何かがSerializableクラスから継承する場合、子クラスはまだSerializableですか?
シリアル化できるかどうかによって異なります。 CLIマーカー(つまり、[Serializable]
属性)を意味する場合、これはnot継承されます(以下の証明)。各派生クラスを[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 {}