我与一个在xml中返回数据的服务集成。 我使用xml serialize:
将它们反序列化为数据列表[Serializable, XmlRoot("string", Namespace = "http://tempuri.org/", IsNullable = true)]
public class PositionPosting
{
[XmlArray("JobCategories")]
[XmlArrayItem("JobCategory", typeof(ExportItems))]
public ExportItems[] JobCategory { get; set; }
}
[Serializable()]
public class ExportItems
{
[XmlAttribute("key")]
public string Key { get; set; }
[XmlAttribute("text")]
public string Value { get; set; }
}
结果我有这个:
我为GetServiceData方法提供了序列化为xml所需的模型。
在此之后我创建了一个像IList这样的列表的方法:
private void UpdateDropDown<T>(IList<DropDownModel> model, IList<T> syncData) where T : class
如何从IList syncData中的JobCategories数组中获取属性和名称?
感谢您的帮助!
答案 0 :(得分:0)
这个问题有点令人困惑;所以这是我的假设,我可以通过阅读几次来收集。
GetServiceData(..)
正在返回ExportItems
UpdateDropDown<T>(..)
现在,要将ExportItems[]
转换为IList<ExportItem>
,您只需创建一个实现IList<T>
的对象实例,最好的示例是List<T>
。这可以通过首先包括命名空间System.Linq
,然后&#34; ToList&#34;来完成。使用Linq内置扩展的数组,如下所示:
var data = this.GetServiceData<PositionPosting>(this.GetService(id));
UpdateDropDown(model, data[0].ToList())
希望这会有所帮助。 :)
问题:
this.GetServiceData<T>(..)
的约束是什么?