しかし、私は応答するだけですか?XMLコード全体を逐語的に記述しますか、それとも.NETに組み込まれたより簡潔な方法がありますか?
XmlWriter、XDocument、またはXmlSerializerを使用してXMLを構築し、それをに書き込むことができResponse.OutputStream
ます。
XDocument
これが:の例です。
public void ProcessRequest(HttpContext context)
{
var doc = new XDocument(
new XElement(
"messages",
new XElement(
"message",
new XAttribute("id", "1"),
new XAttribute("value", "message 1"),
),
new XElement(
"message",
new XAttribute("id", "2"),
new XAttribute("value", "message 2")
)
)
);
context.Response.ContentType = "text/xml";
using (var writer = XmlWriter.Create(context.Response.OutputStream))
{
doc.WriteTo(writer);
}
}
JSONについても同じ質問
JavaScriptSerializerなどのJsonシリアライザーを使用して、それを出力ストリームに書き込みます。
public void ProcessRequest(HttpContext context)
{
var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(new
{
messages = new[]
{
new { id = 1, value = "message 1" },
new { id = 2, value = "message 2" },
}
});
context.Response.ContentType = "application/json";
context.Response.Write(json);
}
そうは言っても、 ASP.NETMVCまたはドアをノックするWebAPIが、汎用ハンドラーを作成する代わりに、このようなデータを公開するための好ましい方法であることに注意する必要があります。