おそらく、これを行う最善の方法は HttpHandler/ASHX ファイルを使用することですが、ページを使用する場合は完全に可能です。重要なポイントは次の 2 つです。
- 空のページを使用します。ASPX のマークアップに必要なのは <% Page ... %> ディレクティブだけです。
- 応答ストリームの ContentType を XML に設定します -
Response.ContentType = "text/xml"
XML 自体をどのように生成するかはユーザー次第ですが、XML がオブジェクト グラフを表す場合は、XmlSerializer
(System.Xml.Serialization
名前空間から) を使用して、XML を Response ストリームに直接書き込むことができます。
using System.Xml.Serialization;
// New up a serialiser, passing in the System.Type we want to serialize
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
// Set the ContentType
Response.ContentType = "text/xml";
// Serialise the object to XML and pass it to the Response stream
// to be returned to the client
serialzer.Serialize(Response.Output, MyObject);
XML が既にある場合は、ContentType を設定したら、それを Response ストリームに書き込んで、ストリームを終了してフラッシュするだけです。
// Set the ContentType
Response.ContentType = "text/xml";
Response.Write(myXmlString);
Response.Flush();
Response.End();