XMLをSilverlight内のクラスコレクションに自動デシリアライズしますか?
-
05-07-2019 - |
質問
これが本質的にジェネリックである場合は申し訳ありませんが、.NETおよびSilverlightの基本的なルールのいくつかを理解していないことに関連する質問があります。
現時点では、次の基本的なプロジェクトがあります。
-
ASP.NET汎用ハンドラーがXMLを書き出す
-
Silverlight内で、WebClientオブジェクトを使用してXML出力を取得しています。実際、 Scott Guのチュートリアルを実行しています: Scott Guの優れたチュートリアル
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フィールドをクラスに追加します。
繰り返しますが、私はここで基本的な何かが欠けていると確信しています!
解決
記事 http://mironabramson.com/blog/post/2008/06/Create-you-own-new-Type-and-use-it-on-run- time-(C).aspx 。
実行時に型とインスタンスを作成する方法を説明します。
そして、C#4.0では動的型がより簡単になると思います。
所属していません StackOverflow