0

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

У меня есть основной проект в тот момент, когда просто:

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

  2. В Silverlight, я использую объект WebClient, чтобы получить выход XML , на самом деле я был запущен через учебник Скотт Гу: Scott Gu's excellent tutorial

I-ха Ве использовал пример 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; } 
} 

SO MY ГЛАВНЫЙ ВОПРОС - ЭТО ...

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

Опять же, я уверен, что мне не хватает чего-то фундаментального здесь!

ответ

1

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

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

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

+0

Привет, спасибо за ваш ответ .. mmm Я еще не много читал о C# 4.0, хотя я слышал о динамических типах и задавался вопросом, какими они были! Единственная проблема - ссылка, которую вы предоставили, кажется мертвой или, возможно, неправильно вставлена? звучит хорошо читать! Спасибо за ваш ответ! – 2009-03-10 11:08:01

+0

[Попробуйте это] (http://mironabramson.com/blog/post/2008/06/Create-you-own-new-Type-and-use-it-on-run-time- (C) .aspx) – Jordan