我有一個課程,我正在使用C#的序列號XmlSerializer。它標有XmlRoot屬性,我想在派生類中繼承此屬性。XmlRootAttribute是可繼承的嗎?
查看文檔,它並沒有說XmlRoot設置繼承爲假使用AttributeUsageAttribute(繼承應該默認爲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>
徹底的迴應,我欣賞背景。謝謝! – 2010-01-16 03:30:32