asp.net-web-api – 设置默认的WebAPI格式化程序
发布时间:2020-12-16 07:25:05 所属栏目:asp.Net 来源:网络整理
导读:我们使用WebAPI模仿遗留系统的处理,因此我们希望XmlFormatter的默认响应格式化程序而不是JsonFormatter.原因是某些对服务的现有调用不提供Accept:HTTP头字段. 我可以通过从Formatters集合中删除JsonFormatter,然后重新添加它,强制它在链的末尾来实现这一点.
我们使用WebAPI模仿遗留系统的处理,因此我们希望XmlFormatter的默认响应格式化程序而不是JsonFormatter.原因是某些对服务的现有调用不提供Accept:HTTP头字段.
我可以通过从Formatters集合中删除JsonFormatter,然后重新添加它,强制它在链的末尾来实现这一点. 然后,这将导致使用XmlFormatter的默认格式响应.虽然它有效但它感觉不正确,虽然我将Json移动到集合的后面,但不能保证XmlFormatter位于集合的前面. 创意/想法? 谢谢 解决方法
只需按正确的顺序添加格式化程序.如果ASP.NET Web API为相同的内容类型找到两个格式化程序,它将选择第一个格式化程序,因此以正确的顺序添加格式化程序非常重要.
//somewhere in Web Api config config.Formatters.Clear(); config.Formatters.Add(new XmlMediaTypeFormatter()); config.Formatters.Add(new JsonMediaTypeFormatter()); 因此默认将是XML,第一个格式化程序,但如果请求请求它(具有适当的HTTP标头),API仍然支持JSON. 最后,另一种不同的方法是使用自定义IContentNegociator.它将允许您为给定的请求选择最合适的MediaTypeFormatter. //somewhere in Web Api config config.Services.Replace(typeof(IContentNegotiator),new MyCustomContentNegotiator()); 一个例子是here. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何从MVC3中的控制器名称中删除“Controller”
- asp.net-mvc-4 – ASP.NET MVC RemoteAttribute验证无效 –
- asp.net-mvc-2 – 在自定义模型绑定器中设置ModelState值
- asp.net-mvc-3 – 用于ASP的Telerik扩展. NET MVC免费?
- asp.net-mvc – asp.net MVC:本地化
- asp.net-mvc – 为什么删除:ASP.NET MVC CheckBoxList(没有
- asp.net – 如何删除特定页面中的cookie?
- asp.net – 无法加载程序集“App_Web_kh7-x3ka”.确保在访问
- asp.net-mvc – 为什么Razor会添加另一个值属性以及如何删除
- asp.net – 它似乎是一个浏览器(或者它是visual studio吗?
推荐文章
站长推荐
- Asp.Net Mvc中动态数据的替代方案
- 对asp.net网站进行基准测试,我可以使用jmeter吗?
- asp.net-mvc – 我何时以及为什么要考虑asp.net
- asp.net – SQL Reporting Services – 打印按钮
- asp.net-mvc-4 – 在一个项目中混合Web Api和ASP
- asp.net-mvc – 如何为每个ActionLink指定默认区
- asp.net-mvc – WebAPI窗体身份验证SimpleMember
- asp.net – 是否可以用HTML元素替换asp:按钮
- asp.net-mvc – Asp.Net MVC 2 Label自定义文本
- 如何识别asp.net Web应用程序中的iisreset?
热点阅读