Является ли XmlRootAttribute наследуемым?

У меня есть класс, я сериализуюсь с C #XmlSerializer, Он отмеченXmlRoot атрибут, и я хотел бы наследовать этот атрибут в производном классе.

Глядя на документацию, он не говорит, что XmlRoot устанавливает Inherit в false с AttributeUsageAttribute (Inherit предполагается по умолчанию в true), но я получаю ошибку при попытке десериализации моего унаследованного класса без атрибута XmlRoot ("<rootNode xmlns = ''> не ожидал. ").

В настоящее время это работает:

[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; }
}

Это не работает, но это то, что я хочу:

[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, который я мог бы попытаться десериализовать какInheritedClass выглядит так:


    123

Ответы на вопрос(1)

Ваш ответ на вопрос