0

XMLドキュメントをXDocumentオブジェクトにロードし、クエリを実行してから、Webサービスを介してXmlDocumentオブジェクトとしてデータを返します。

以下のコードは正常に機能しますが、少し臭いようです。クエリの結果を取得してXDocumentまたはXmlDocumentに戻すためのよりクリーンな方法はありますか?

            XDocument xd = XDocument.Load(Server.MapPath(accountsXml));         

        var accounts = from x in xd.Descendants("AccountsData")
                       where userAccounts.Contains(x.Element("ACCOUNT_REFERENCE").Value)
                       select x;

        XDocument xd2 = new XDocument(
            new XDeclaration("1.0", "UTF-8", "yes"),
            new XElement("Accounts")               
        );

        foreach (var account in accounts)
            xd2.Element("Accounts").Add(account);

        return xd2.ToXmlDocument();
4

2 に答える 2

0

これはアプリケーションの概念実証のためだけのものなので、今のところこのコードを使用します。ライブ アプリケーションはデータベースに直接接続するため、xml ファイルからデータを取得し、クエリを実行して、再度 xml としてプッシュする必要はありません。

于 2010-03-22T10:27:41.613 に答える
0

XDeclaration を応答に入れているという事実は、私にとっても少しおかしいにおいがします。

Web サービス層を介して返される XML を作成するのはなぜですか? WCF を使用するか ASMX を使用するかに関係なく、.NET Web サービス レイヤーが XML シリアル化を行います。

厳密に型指定されたオブジェクトを返すことができ、それは自動的にシリアル化されます。

于 2010-03-12T16:31:47.630 に答える