После борьбы с кучей неискушенных исключений при попытке сериализации моих классов и подклассов я наконец понял, в чем была моя проблема: [Serializable] не наследуется подклассами, когда применяется к базовый класс. Я по-прежнему неясен в отношении атрибутов C# в целом, но я понимаю, что при создании настраиваемого атрибута программист может включить автоматическое наследование атрибута.Переопределение наследования по внутренним атрибутам в C#
Есть ли способ переопределить наследование [Serializable]? Есть ли веская причина, почему это не было сделано с самого начала и/или было бы плохой идеей сделать это в первую очередь? Я хотел бы, чтобы все подклассы указанного базового класса были сериализуемыми, поэтому просто кажется, что не нужно добавлять атрибут в любые новые подклассы, которые я делаю.
Спасибо!
Вы когда-нибудь устали от того, что всегда правы? –
Замечательная записка об этом. Классы, которые реализуют 'ISerializable' **, также должны быть отмечены символом' SerializableAttribute'. Предположительно, это позволяет среде выполнения определять, можно ли ее десериализовать тип, упомянутый в метаданных сериализации (так как в этой точке нет экземпляра типа). – LBushkin
@ Джимми Хоффа, я думаю, что Джон периодически высказывает неправильный ответ, чтобы разбить монотонность того, что он прав. Однако при дальнейших проверках выясняется, что неправильные ответы также правильны. –