[英]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.