ArrayIndex in XMLAttribute

本文关键字:XMLAttribute in ArrayIndex | 更新日期: 2023-09-27 18:12:22

我有一个Xml,它的格式应该是:

<name Segment1="infofor1" segment2="infofor2" Segment1_OtherInfo="SomethingElseFor1" Segment2_OtherInfo="SomethingElseFor2"/>

对于课程,我考虑了以下内容:

public class Name{
  public Segment[]Segment{get;set;}
}
public class Segment{
 [XmlAttribute("Segment???")]
  public string Segment{get;set;}
 [XmlAttribute("Segment???_OtherInfo")]
  public string SegmentOtherInfo{get;set;}
}

一般来说,我希望数组的索引到我的XML属性的名称。我认为这是完全讨厌的,但我不能改变xml,这是一个要求。我怎样才能做到呢?我可以随心所欲地改变班级。如果属性为空,则不写入属性。

ArrayIndex in XMLAttribute

我认为括号中的注释不够灵活(但我必须花更多的时间来找出原因)。它们依赖于反射和XMLSeralizer,这意味着您的代码应该以某种方式表示XML模型。

在我看来,仅仅创建XElement s和XAttribute s更容易。使用它们,您可以遍历数组,获取数组的索引(或增加计数器),并使用合适的名称添加必要的属性。

这是一个写得很好的例子:http://csharp-guide.blogspot.ch/2012/06/xattribute-class-is-used-along-with.html

:

...
new XElement("name", new XAttribute("Segment" + counter, "infofor" + counter));
...