There is absolutely a good reason why this was not done in the first place - just because the base class is serializable does not mean that the derived class naturally exists.
Heck, object serializable - if serializability is inherited, it means that every class in .NET will be serializable :)
You cannot override this either - you must specify it for each class. I think this is good, in fact - when you add an attribute, you must perform mental control of the class and check whether it really makes sense to serialize it.
source share