У меня есть массив объектов моего базового класса MyBase
. Некоторые из этих объектов являются экземплярами производных классов, поэтому, когда я пытаюсь сериализовать этот массив с помощью System.Xml.Serialization.XmlSerializer
, происходит сбой с жалобами на производные классы: System.InvalidOperationException: тип DerivedClass не ожидался. Используйте атрибут XmlInclude или SoapInclude, чтобы указать типы, неизвестные статически.
Я не хочу сериализовать производные классы и определенно не хочу помещать [XmlIgnore()]
в производные классы (или [XmlInclude()]
в базовый класс, если уж на то пошло)!
Есть ли способ указать XmlSerializer
сериализовать базу только для такого члена, как этот?
[XmlElement("Items")]
public MyBase[] Items
{
get
{
return items.ToArray();
}
set
{
items = new HashSet<MyBase>(value);
}
}