Czy XmlRootAttribute jest dziedziczony?
Mam klasę, którą serializuję za pomocą C #XmlSerializer. Jest oznaczony symbolemXmlRoot atrybut i chciałbym odziedziczyć ten atrybut w klasie pochodnej.
Patrząc na dokumentację nie mówi, że XmlRoot ustawia dziedziczenie na false z AttributeUsageAttribute (Inherit ma domyślnie true), ale pojawia się błąd podczas próby deserializacji mojej dziedziczonej klasy bez atrybutu XmlRoot ("<rootNode xmlns = '' > nie było oczekiwane. ”).
Obecnie działa:
[Serializable()]
[XmlRoot("rootNode")]
public class BaseClass
{
[XmlAttribute("attributeA")]
public int A { get; set; }
}
[Serializable()]
[XmlRoot("rootNode")]
public class InheritedClass : BaseClass
{
[XmlElement("elementB")]
public int B { get; set; }
}
To nie działa, ale chcę tego:
[Serializable()]
[XmlRoot("rootNode")]
public class BaseClass
{
[XmlAttribute("attributeA")]
public int A { get; set; }
}
[Serializable()]
public class InheritedClass : BaseClass
{
[XmlElement("elementB")]
public int B { get; set; }
}
XML, który mogę próbować deserializować jakoInheritedClass
wygląda tak:
<rootNode attributeA="abc">
<elementB>123</elementB>
</rootNode>