Опоздал на вечеринку, но: я просто наткнулся на твой вопрос, потому что у меня похожая проблема. Я наследую от класса, но логика моего производного класса делает некоторые свойства базового класса избыточными или устаревшими для сериализации, и поэтому я не хочу их сериализовать.
Я нашел решение, которое не такое автоматическое, как у вас, но более гибкое: переопределите свойства базового класса и отметьте их [XmlIgnore]
. Реализация в переопределении может просто состоять из вызова базовой реализации; единственная цель переопределения - присоединить к нему атрибут XmlIgnore.
Это менее автоматически, потому что если свойства в базовом классе изменяются, вы должны отражать изменения в производном классе. Это, с другой стороны, более гибко, потому что вы можете выбрать , которые свойства игнорировать.
По общему признанию, это решение плохо масштабируется и лучше всего подходит для небольших проектов с тесными связями между вовлеченными классами и людьми.