如何向XmlArray元素添加属性(XML序列化)?

123*_*per 30 .net c# xml-serialization

在序列化对象时,如何向XmlArray元素(而不是XmlArrayItem)添加属性?

Ray*_* Lu 69

XmlArray用于告诉xmlserializer将属性视为数组,并根据元素名称的参数对其进行序列化.

[XmlArray("FullNames")]
[XmlArrayItem("Name")]
public string[] Names{get;set;}
Run Code Online (Sandbox Code Playgroud)

会给你

<FullNames>
    <Name>Michael Jackson</Name>
    <Name>Paris Hilton</Name>
</FullNames>
Run Code Online (Sandbox Code Playgroud)

为了向FullNames元素添加xml属性,您需要为它声明一个类.

[XmlType("FullNames")]
public class Names
{
   [XmlAttribute("total")]
   public int Total {get;set;} 
   [XmlElement("Name")]
   public string[] Names{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

这会给你

<FullNames total="2">
    <Name>Michael Jackson</Name>
    <Name>Paris Hilton</Name>
</FullNames>
Run Code Online (Sandbox Code Playgroud)