Disable JSON Support in ASP.NET MVC Web API

2020-05-07 06:04发布

In the creation of our new MVC Web API-based service, we want to focus on XML to begin with and add JSON functionality later as an enhancement, using the full release with native JSON.NET support. To that end, we want to prevent the service accepting requests or giving responses in JSON to avoid establishing any functionality we are expecting to break.

Is there a way to disable JSON support in the ASP.NET MVC API?

2条回答
放我归山
2楼-- · 2020-05-07 06:36

There's an even shorter option, because there can be only one Json formatter and the MediaTypeFormatterCollection exposes it as a property. Available since Web API 2 (maybe also in v1, not sure).

Formatters.Remove(controllerSettings.Formatters.JsonFormatter)

查看更多
我命由我不由天
3楼-- · 2020-05-07 06:52

All you have to do is to remove JSON media formatters.

// Identify JSON formatters in global config.
var jsonMediaTypeFormatters = GlobalConfiguration.Configuration.Formatters
    .Where(x => x.SupportedMediaTypes
    .Any(y => y.MediaType.Equals("application/json", StringComparison.InvariantCultureIgnoreCase)))
    .ToList();

// Remove formatters from global config.
foreach (var formatter in jsonMediaTypeFormatters)
{
    GlobalConfiguration.Configuration.Formatters.Remove(formatter);
}
查看更多
登录 后发表回答