我已经按照文档(https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/custom-formatters?view=aspnetcore-2.2)制作了自定义格式器。我的自定义格式化程序将响应写为特殊类型的字节数组,并且当请求的“接受”标头中包含“应用程序/八位字节流”时,应使用该格式。
我希望默认值仅返回一个json对象,就像使用“ application / json”调用它时一样,但是默认情况下,当我不指定标头时,默认使用我的格式化程序。如何解决此问题,仅使用默认的JsonOutputFormatter?
我正在添加这样的格式化程序:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options =>
{
options.OutputFormatters.Insert(0, new OctetStreamOutputFormatter());
});
}
答案 0 :(得分:0)
因此,事实证明,不覆盖默认格式化程序的方法是将Add添加到OutputFormatters的末尾,而不是插入列表的开头。此更改有效:
我已经按照文档(https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/custom-formatters?view=aspnetcore-2.2)制作了自定义格式器。我的自定义格式化程序将响应写为特殊类型的字节数组,当请求的“接受”标头中包含“应用程序/八位字节流”时,应使用该响应。
我希望默认值仅返回一个json对象,就像使用“ application / json”调用它时一样,但是默认情况下,当我不指定标头时,默认使用我的格式化程序。如何解决此问题,仅使用默认的JsonOutputFormatter?
我正在添加这样的格式化程序:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options =>
{
options.OutputFormatters.Add(new OctetStreamOutputFormatter());
});
}