В С# рассмотрим, что мы имеем общий класс и конкретный класс
[Serializable]
public class GenericUser
{ ...
[Serializable]
public class ConcreteUser : GenericUser
{ ...
нужно ли пометить ConcreteUser как [Serializable]
или наследование позаботится об этом?