XML生成コードを別のクラスに配置します。ハンドラがクラスを使用してXMLを作成し、その結果をクライアントに送信する(BTWでは、最初にXMLを作成するためにXML文書技術を使用しているResponse.Writeは使用しないでください)。
クラスが完成したXMLを文字列として公開できることを確認してください。
ASPXページで、同じクラスを使用し、XML文字列をXmlDataSourceコントロールのdataプロパティに割り当てます。
編集:
おてXmlTextWriterを使用しているので、上あなたのコメントからは、私はこれらの詳細を追加します明らかに少し混乱しています。
現在XMLを生成しているコードをApp_Codeフォルダ(またはおそらくdllプロジェクト)のクラスに配置する必要があります。このクラスには、XmlTextWriterをパラメータとして受け取るメソッドがあります。
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
XmlCreator creator = new XmlCreator();
XmlCreator.GenerateXml(writer);
ノートのResponse.Writeのための必要性を、これが適切に行わエンコーディングを取得します - :あなたは、このコードを持っていないあなたのハンドラで
public class XmlCreator
{
public void GenerateXml(XmlTextWriter writer)
{
//All your code that writes the XML
}
}
。
使用するあなたのASP.NETページでは: -
StringWriter source = new StringWriter();
XmlTextWriter writer = new XmlTextWriter(source, Encoding.Unicode);
XmlCreator creator = new XmlCreator();
XmlCreator.GenerateXml(writer);
yourXmlDataSource.Data = source.ToString();
XmlCreatorは、あなたがそれがXM生成を供給する必要がありますされ、他のどのようなデータに依存静的クラスを使用することができ、その場合にはインスタンス化する必要はないかもしれません。
XML生成にXMLTextWriterを使用しています。 このデータの消費者はASP.Net以外になるため、クラスを作成できません。それはWebからアクセス可能な何かでなければならないので、HttpHandler – Midhat
あなたはクラスを作ることができます。サーバー側のコードは、クラスを介して直接XMLにアクセスします。 OTHでは、クライアント側のコードがHttpHandlerを介してXMLにアクセスし、HttpHandlerは同じクラスを使用して実際にXMLを作成します。 XMLを生成するコードは1つの場所(クラス)にあり、HttpHandlerはクライアント側のアクセスを可能にするアダプタになります。 – AnthonyWJones
XMLDataSourceへの入力としてXMLを使用することを意図しました。しかし、今私はDataFileプロパティの代わりにDataプロパティを使用すると思います – Midhat