asp.net Web Api 在网络配置中添加 MediaTypeFormatter
asp.net WebApi add MediaTypeFormatter in webconfig
我在 TestFormatter.cs extending MediaTypeFormatter
中有一个名为 TestFormatter
的自定义媒体格式化程序。现在我想添加这个格式化程序。一种选择是:
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 文件中的节点。但我不知道添加它的正确语法。我试过谷歌搜索但没有成功。
仅通过使用配置文件设置无法完成您正在尝试做的事情;不幸的是,您需要编写一些代码才能到达您想要的位置。这是因为 web.config 文件是一个 ASP.NET / IIS 构造,而 WebAPI 被设计为 self-hosted(在 IIS 之外 / ASP.NET)。
我建议将您自己的自定义 ConfigurationSection 添加到配置文件中。将 MediaTypeFormatters 属性 / 元素添加到您的 ConfigurationSection class,并让 属性 成为 ConfigurationElementCollection。然后,在您网站的 Global.asax 中,添加一些代码,将自定义集合中的任何 MediaTypeFormatters 复制到附加到 HttpConfiguration 的 "live" 集合中。此 link 包含一个使用类似方法设置 HttpConfiguration.IncludeErrorDetailPolicy 属性 使用 web.config 设置的示例;虽然这不完全是您要尝试做的事情,但它应该提供一个很好的起点。
我在 TestFormatter.cs extending MediaTypeFormatter
中有一个名为 TestFormatter
的自定义媒体格式化程序。现在我想添加这个格式化程序。一种选择是:
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 文件中的节点。但我不知道添加它的正确语法。我试过谷歌搜索但没有成功。
仅通过使用配置文件设置无法完成您正在尝试做的事情;不幸的是,您需要编写一些代码才能到达您想要的位置。这是因为 web.config 文件是一个 ASP.NET / IIS 构造,而 WebAPI 被设计为 self-hosted(在 IIS 之外 / ASP.NET)。
我建议将您自己的自定义 ConfigurationSection 添加到配置文件中。将 MediaTypeFormatters 属性 / 元素添加到您的 ConfigurationSection class,并让 属性 成为 ConfigurationElementCollection。然后,在您网站的 Global.asax 中,添加一些代码,将自定义集合中的任何 MediaTypeFormatters 复制到附加到 HttpConfiguration 的 "live" 集合中。此 link 包含一个使用类似方法设置 HttpConfiguration.IncludeErrorDetailPolicy 属性 使用 web.config 设置的示例;虽然这不完全是您要尝试做的事情,但它应该提供一个很好的起点。