[英]Serialize field as attribute of an element
我有
[XmlRoot("root")]
class Person
{
[XmlAttribute("name")]
public strig Name {get;set;}
}
序列化后,我將得到:
<root name="...">
</root>
任何簡單的獲取方法
<root>
<general name="...">
</root>
?
對我來說,選項是:制作其他類,使用IXmlSerializable等
可能有類似下面的內容嗎?
// code not valid
[XmlElement("general")]
[XmlAttribute("name")]
public strig Name {get;set;}
要獲取內部元素,您需要使用XmlElement屬性。 因此,如果您創建一個包含XmlAttribute(“ name”)屬性的“通用”類。 然后,您可以將其添加到Person類。
[XmlRoot("root")]
class Person
{
[XmlElement("general")]
public General General {get; set;}
}
class General
{
[XmlAttribute("name")]
public strig Name {get;set;}
}
我想我將繼續使用IXmlSerializable,如下所示:
[XmlRoot("root")]
class Person : IXmlSerializable
{
[XmlAttribute("name")]
public string Name {get;set;}
public System.Xml.Schema.XmlSchema GetSchema() {
return null;
}
public void ReadXml( XmlReader reader ) {
...
}
public void WriteXml( XmlWriter writer ) {
writer.WriteStartElement( "root" );
writer.WriteStartElement( "general", null );
writer.WriteAttributeString( "action", Action );
...
writer.WriteEndElement();
writer.WriteEndElement();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.