我从如下所示的XML产生自动类:如何访问该对象阵列
public partial class XmlClass {
private decimal num1;
private ClassA[] classField;
/// <remarks/>
public decimal num1 {
get;
set;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("classA")]
public ClassA[] classA {
get{...};
set{...};
}
}
public partial class ClassA {
private object[] itemsField;
private string typeField;
[System.Xml.Serialization.XmlElementAttribute("commands", typeof(classACommands))]
[System.Xml.Serialization.XmlElementAttribute("minVersion", typeof(string))]
public object[] Items {
get {
return this.itemsField;
}
set {
this.itemsField = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
public string type {
get {
return this.typeField;
}
set {
this.typeField = value;
}
}
}
ClassA的具有字符串和命令类作为Object[]
中的对象。我可以看到所有的东西都是完美的反序列化,并且通过:(commands)myXmlClass.classA.ElementAt(i).Items[3]
得到它们,其中i
来自ClassA数组的索引。但是我如何在不使用'3'的情况下获取或设置它们?不同的ClassA元素可能会有所不同。
...指数? – MiMo
...'myXmlClass.classA.ElementAt(i)'是'ClassA'类型,为什么要转换为'commands'?你的代码似乎也遗漏了在[[System.Xml.Serialization.XmlElementAttribute(“commands”,typeof(classACommands))]' – MiMo
之后的一个属性的声明,实际上我在ClassA下有更多的对象,并不是所有的ClassA元素实际上都有相同数量的对象。所以同一对象的索引在不同的ClassA元素中可能会有所不同。例如,数组中的第一个ClassA。命令OBJ可能在3被索引,但在第三可能是4.我的代码中有xmlElementAttribute声明,它是命令)myXmlClass.classA.ElementAt(i).Items [3],而不是命令)myXmlClass.classA .ElementAt(i)...谢谢。 – NewDTinStackoverflow