四、添加XML类型支持
第三、四节通过自定义的方式实现了特殊格式的处理,在项目中常见的格式还有XML,这在ASP.NET Core中没有做默认支持。如果需要XML格式的支持,可以通过NuGet添加相应的包。
在NuGet中搜索并安装Microsoft.AspNetCore.Mvc.Formatters.Xml,如下图 4
图 4
不需要像BookOutputFormatter那样都注册方式,系统提供了注册方法:
services.AddMvc().AddXmlSerializerFormatters();
或者
services.AddMvc().AddXmlDataContractSerializerFormatters();
分别对应了两种格式化程序:
System.Xml.Serialization.XmlSerializer; System.Runtime.Serialization.DataContractSerializer;
二者的区别就不在这里描述了。注册之后,就可以通过在请求的Header中通过设置“accept: application/xml”来获取XML类型的结果了。访问上一节的返回结果类型为Book的例子,返回的结果如下:
<Book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Code>1001</Code> <Name>ASP</Name> </Book>
Content-Type值是:Content-Type: application/xml; charset=utf-8。