Автоматическая десериализация XML в коллекцию классов в Silverlight? - PullRequest
0 голосов
/ 08 марта 2009

Извините, если это универсальный характер, но у меня есть вопрос, который, возможно, связан с моим непониманием некоторых основных базовых правил .NET и Silverlight.

На данный момент у меня есть базовый проект, который просто:

  1. Общий обработчик ASP.NET записывает XML

  2. В Silverlight я использую объект WebClient для получения вывода XML, фактически я пробегал учебник Скотта Гу: Отличный учебник Скотта Гу

Я использовал пример LINQ TO XML, чтобы по существу загрузить XML в коллекцию классов .. например:

XDocument saleslogdata = XDocument.Parse(e.Result);

var logrecords = from data in saleslogdata.Descendants("data")
                 where data.Element("logID") != null
                 select new SalesLog
                 {
                     logID = (int)data.Element("logID"),
                     name = (string)data.Element("name"),
                 };

grdSalesLog.ItemsSource = logrecords;

Класс выглядит следующим образом (только базовый пример):

public class SalesLog
{
    public int logID { get; set; }
    public string name { get; set; }
}

ТАК МОЙ ГЛАВНЫЙ ВОПРОС ЭТО ...

Есть ли способ, которым я могу "автоматически сгенерировать" часть построения класса из приведенного выше примера. Другими словами, если мне нужно добавить еще 10 столбцов в исходный XML, мне, очевидно, нужно зайти в свое приложение silverlight, изменить приведенный выше код, чтобы расширить класс для включения новых полей, и, конечно, запрос LINQ to XML для сопоставления новые поля XML для класса.

Опять же, я уверен, что здесь что-то упущено!

1 Ответ

1 голос
/ 08 марта 2009

Ознакомьтесь с артикулом http://mironabramson.com/blog/post/2008/06/Create-you-own-new-Type-and-use-it-on-run-time-(C).aspx.

Объясняет, как создать тип и экземпляр во время выполнения.

И я думаю, что динамические типы облегчат работу в C # 4.0.

...