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,这是一个要求。我怎样才能做到呢?我可以随心所欲地改变班级。如果属性为空,则不写入属性。
我认为括号中的注释不够灵活(但我必须花更多的时间来找出原因)。它们依赖于反射和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));
...