Является ли 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