클래스가 있습니다. C#의 XmlSerializer으로 직렬화됩니다. XmlRoot 특성으로 표시되어 있으며 파생 클래스에서이 특성을 상속하고 싶습니다.XmlRootAttribute는 상속받을 수 있습니까?
설명서를 보면 XmlRoot가 AttributeUsageAttribute (Inherit는 기본적으로 true로 설정되어 있음)로 상속을 설정하지만 XmlRoot 특성없이 상속 된 클래스를 deserialize 할 때 오류가 발생한다고하지는 않습니다 ("< 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>
철저한 응답으로 배경을 고맙게 생각합니다. 감사합니다. –