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>

questionAnswers(1)

yourAnswerToTheQuestion