У меня есть следующий базовый класс украшен атрибут XmlTypeНаследование XMLType базового класса
[Serializable]
[XmlType("Base")]
public class Base
{
[XmlElement(ElementName = "IdBase")]
public int IdBase { get; set; }
...
}
И следующий унаследованный класс, без класса XMLType атрибутого объявления декорирования
[Serializable]
public class InheritedClass1 : Base
{
[XmlElement(ElementName = "InheritedProp")]
public int InheritedProp{ get; set; }
...
}
Когда я сериализация , унаследованный класс, по-видимому, переопределяет XmlType, генерируя следующий XML (чего я не ожидал, потому что я явно не украсил XmlType)
<InheirtedClass1>
<IdBase>1</IdBase>
<InheritedProp>1</InheritedProp>
...
</InheirtedClass1>
That's в XML я ожидал
<Base>
<IdBase>1</IdBase>
<InheritedProp>1</InheritedProp>
...
</Base>
Если я пытаюсь украсить унаследованный класс с [XmlType («Base»)] атрибута, но исключение, когда я создаю экземпляр XmlSerializer (typeof (InheirtedClass1)), потому что он дублирует XmlType, что имеет смысл ...
Может кто-нибудь объяснить, почему это происходит (заменить XmlType без экспликации) и как я могу достичь желаемого поведения?