Является ли 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 выглядит так:

<rootNode attributeA="abc">
    <elementB>123</elementB>
</rootNode>

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

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