我在TestFormatter
中有一个名为TestFormatter.cs extending MediaTypeFormatter
的自定义媒体格式化程序。现在我想添加这个格式化程序。一种选择是:
config.Formatters.Add(new BinaryMediaTypeFormatter());
如果我想在web.config文件中添加此媒体类型格式化程序,该怎么办?我见过
<webApi.webServer>
<services>
<replace serviceType="System.Web.Http.ExceptionHandling.IExceptionHandler, System.Web.Http" serviceClass="Slb.Avocet.WebApiServer.ExceptionHandling.GlobalExceptionHandler, Slb.Avocet.WebApiServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<replace serviceType="System.Web.Http.Description.IDocumentationProvider, System.Web.Http" serviceClass="Slb.Avocet.WebApiServer.Documentation.XmlDocumentationProvider, Slb.Avocet.WebApiServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</services>
<mediaTypeFormatters>
</mediaTypeFormatters>
<messageHandlers>
</messageHandlers>
</webApi.webServer>
web.config文件中的节点。但我不知道添加它的正确语法。我试过谷歌搜索但没有成功。
答案 0 :(得分:1)
您尝试做的事情不能仅通过使用配置文件设置来完成;不幸的是,您需要编写一些代码才能获得您想要的位置。这是因为web.config文件是ASP.NET / IIS构造,而WebAPI被设计为self-hosted(在IIS / ASP.NET之外)。
我建议您将自己的自定义ConfigurationSection添加到配置文件中。将MediaTypeFormatters属性/元素添加到ConfigurationSection类,并将该属性设置为ConfigurationElementCollection。然后,在您网站的Global.asax中,添加一些代码,将您自定义集合中的任何MediaTypeFormatters复制到&#34; live&#34;附加到HttpConfiguration的集合。此link包含使用类似方法使用web.config设置设置HttpConfiguration.IncludeErrorDetailPolicy属性的示例;虽然它不完全是你想要做的,但应该提供一个很好的起点。