自动将XML反序列化为Silverlight中的类集合?

时间:2009-03-08 02:53:28

标签: xml silverlight serialization linq-to-xml silverlight-2.0

很抱歉,如果这是通用的,但我有一个问题可能与我对.NET和Silverlight的一些核心基础规则缺乏了解有关。

我目前只有一个基本项目:

  1. ASP.NET通用处理程序写出XML

  2. 在Silverlight中,我使用WebClient对象获取XML输出,实际上是我 一直在浏览Scott Gu的教程: Scott Gu's excellent tutorial

  3. 我使用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; }
    }
    

    因此我的主要问题是......

    有没有办法可以“自动生成”上面例子中的类构建部分。换句话说,如果我需要在源XML中添加另外10列,我显然需要进入我的silverlight应用程序,更改上面的代码以扩展类以包含新字段,当然还有LINQ to XML查询来映射该类的新XML字段。

    再次,我相信我在这里错过了一些有趣的东西!

1 个答案:

答案 0 :(得分:1)

查看文章http://mironabramson.com/blog/post/2008/06/Create-you-own-new-Type-and-use-it-on-run-time-(C).aspx

它解释了如何在运行时创建类型和实例。

我猜动态类型会让它在C#4.0中更容易。