我正在尝试生成创建这样的 XML 片段的 C#。
<device_list type="list">
<item type="MAC">11:22:33:44:55:66:77:88</item>
<item type="MAC">11:22:33:44:55:66:77:89</item>
<item type="MAC">11:22:33:44:55:66:77:8A</item>
</device_list>
我正在考虑使用这样的东西:
[XmlArray( "device_list" ), XmlArrayItem("item")]
public ListItem[] device_list { get; set; }
作为属性,使用此类声明:
public class ListItem {
[XmlAttribute]
public string type { get; set; }
[XmlText]
public string Value { get; set; }
}
这给了我内部序列化,但我不知道如何将type="list"
属性应用到device_list
上面。
我在想(但不确定如何编写语法)我需要做一个:
public class DeviceList {
[XmlAttribute]
public string type { get; set; }
[XmlArray]
public ListItem[] .... This is where I get lost
}
根据戴夫的回复更新
public class DeviceList : List<ListItem> {
[XmlAttribute]
public string type { get; set; }
}
public class ListItem {
[XmlAttribute]
public string type { get; set; }
[XmlText]
public string Value { get; set; }
}
目前的用法是:
[XmlArray( "device_list" ), XmlArrayItem("item")]
public DeviceList device_list { get; set; }
和类型,同时在代码中声明如下:
device_list = new DeviceList{type = "list"}
device_list.Add( new ListItem { type = "MAC", Value = "1234566" } );
device_list.Add( new ListItem { type = "MAC", Value = "1234566" } );
没有显示序列化的类型。这是序列化的结果:
<device_list>
<item type="MAC">1234566</item>
<item type="MAC">1234566</item>
</device_list>
所以显然我仍然错过了一些东西......