Цикл значений свойств в общем списке <T> - PullRequest
0 голосов
/ 23 марта 2012

Я делаю интеграцию с одним сервисом, который возвращает данные в формате XML.Я десериализирую их в Список данных, используя сериализацию xml:

[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; }
}

В результате я получаю следующее: enter image description here

Я предоставляю методу GetServiceData модель, необходимую для сериализации в xml.

После этого я создаю метод, который получит этот список, например, IList:

private void UpdateDropDown<T>(IList<DropDownModel> model, IList<T> syncData) where T : class

Как я могу получить свойства и имена из массива JobCategories в IList syncData?

Спасибоза помощь!

1 Ответ

0 голосов
/ 23 марта 2012

Вопрос немного сбивает с толку;так вот мои предположения, которые я могу почерпнуть, прочитав его несколько раз.

  1. GetServiceData(..) возвращает массив ExportItems
  2. Вы хотите передать информацию UpdateDropDown<T>(..)

Теперь, чтобы преобразовать ExportItems[] в IList<ExportItem>, вам просто нужно создать экземпляр объекта, который реализует IList<T>, с лучшим примером - List<T>.Это можно сделать, сначала включив пространство имен System.Linq, а затем "ToList'ing" массив, используя встроенные расширения Linq, например так:

var data = this.GetServiceData<PositionPosting>(this.GetService(id));
UpdateDropDown(model, data[0].ToList())

Надеюсь, это поможет.:)

Вопрос: Каковы ограничения на this.GetServiceData<T>(..)?

...