Это зависит от того, что вы имеете в виду, быть сериализуемым. Если вы имеете в виду маркер 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 {}