我在班上有这个元素
[XmlArray("photos")]
public List<zPhoto> EntityPhotos;
当我序列化课程时,我得到了这个:
<photos>
<zPhoto id="73102" type="a" />
<zPhoto id="73102" type="b"/>
<zPhoto id="73105" type="a" />
<zPhoto id="73105" type="b" />
</photos>
为了简化xpath查询,我想添加一个新的指令,它会给我一个像
这样的结果<photos count="2" >
<zPhoto id="73102" type="a" />
<zPhoto id="73102" type="b"/>
<zPhoto id="73105" type="a" />
<zPhoto id="73105" type="b" />
</photos>
我想添加trival属性名称并设置值。有可能吗?
答案 0 :(得分:2)
在成员变量
上方添加属性 [XmlAttribute("count")]
修改强>
上一个关于SO
的问题已经涵盖了这一点How do I add a attribute to a XmlArray element (XML Serialization)?
答案 1 :(得分:0)
一种方法是引入一个自定义泛型集合类,以您想要的方式自行序列化。
答案 2 :(得分:-2)
您可以用ZPhotos类型替换字符串类型。
[XmlRoot("EntityPhotos")]
public class EntityPhotos
{
private List<String> _photos;
public EntityPhotos()
{
_photos = new List<string>
{
"One.jpg",
"Two.png",
"Three.gif"
};
}
[XmlElement("Photos")]
public String[] Photos
{
get
{
return _photos.ToArray();
}
set {;}
}
[XmlAttribute("Count")]
public Int32 Count
{
get
{
if (Photos != null)
return Photos.Length;
else
return 0;
}
set{;}
}
}