序列化:如何为.NET中的每个元素获取唯一的名称
本文关键字:元素 获取 唯一 序列化 NET | 更新日期: 2023-09-27 18:20:46
在序列化类时,我得到了这种格式的xml。
<Root Name="blah">
<Element>1</Element>
<Element>2</Element>
<Element>3</Element>
<Element>4</Element>
</root>
我的课是
public class Root
{
public List<data> Element { get; set; }
}
但我需要格式为的数据
<Root Name="blah">
<Element0>1</Element0>
<Element1>2</Element1>
<Element2>3</Element2>
<Element3>4</Element3>
</root>
请帮忙。。。
这根本不适合常规序列化程序;并且实现IXmlSerializable是过分的。
只需为您需要的内容创建一个DOM;一个好的起点是XElement:
var el = new XElement(
new XAttribute("Name", obj.Name),
obj.Element.Select((i,child) =>
new XElement("Element" + i, child))
);
var xml = el.ToString();
(未经测试)
我不确定是否可以使用XML序列化程序自动完成。
你确定设置节点的编号作为属性是不可接受的吗,或者可能会将节点分解为以下语法?
<Element>
<Order>0</Order>
<Value>1</Value>
</Element>