序列化:如何为.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>

请帮忙。。。

序列化:如何为.NET中的每个元素获取唯一的名称

这根本不适合常规序列化程序;并且实现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>