可能最好的方法是使用 HttpHandler/ASHX 文件,但如果你想用页面来做,那是完全可能的。两个关键点是:
- 使用空白页面。您在 ASPX 的标记中想要的只是 <% Page ... %> 指令。
- 将 Response 流的 ContentType 设置为 XML -
Response.ContentType = "text/xml"
如何生成 XML 本身取决于您,但如果 XML 表示对象图,您可以使用XmlSerializer
(来自System.Xml.Serialization
命名空间)将 XML 直接写入响应流,例如
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,您只需将其写入响应流,然后结束并刷新流。
// Set the ContentType
Response.ContentType = "text/xml";
Response.Write(myXmlString);
Response.Flush();
Response.End();