1

リンクパッドが大好きです。エンティティ ダンプから HTML の代わりに XML ドキュメントを取得する方法はありますか?

LinqToSql Changeset で HTML ドキュメントの代わりに、LinqPad.Util を使用して XML ドキュメントを作成したいと考えていました。変更セットをシリアル化するために多くの方法を試しましたが、失敗しました。Linqpad util CreateXhtmlWriter はうまく機能しますが、XML ドキュメントの方が望ましいと思います。それをすばやく行う方法についてのアイデアはありますか?

4

1 に答える 1

2

現在、LINQPadには、任意のオブジェクトグラフをXMLにダンプするものはありません。ただし、拡張メソッドを使用すると、説明したことを非常に簡単に実行できるはずです。LINQPadのMyExtensionsに移動し、次のようなメソッドを記述します。

public static XElement ToXml (this ChangeSet cs)
{
    return new XElement ("ChangeSet",
        new XElement ("Inserts", cs.Inserts.Select (e => EntityToXElement (e))),
        new XElement ("Updates", cs.Updates.Select (e => EntityToXElement (e))),
        new XElement ("Deletes", cs.Deletes.Select (e => EntityToXElement (e))));
}

static XElement EntityToXElement (object o)
{
    return new XElement (
        o.GetType().Name,
        o.GetType().GetFields ().Select (f => new XElement (f.Name, f.GetValue (o))));
}

次に、どのクエリでも、次のように実行できます。

GetChangeSet().ToXml().Dump();
于 2012-06-05T01:54:32.270 に答える