WebAPI 2 - 自定义内容类型和协商

WebAPI 2 - Custom content types and negotiation

非常简单的问题,但我在文档中找不到简单的示例,或者它是否会起作用。

我想对我的 API 资源之一进行版本控制。我想添加 application/vnd.myEntityV2+json...+xml 作为自定义内容类型,然后在我的控制器中检查 Accept header 并调用适当的代码。简单的想法。

built-in WebAPI 内容协商会在最后看到 +json|+xml 并选择正确的格式化程序吗?

还是我需要配置两个映射,或者完全是其他东西?

这是我所做的:

JsonMediaTypeFormatter jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().Single();
jsonFormatter.MediaTypeMappings.Add(
    new RequestHeaderMapping(HttpRequestHeaders.Accept, "+json", StringComparison.OrdinalIgnoreCase, true, new MediaTypeHeaderValue(MimeTypes.ApplicationJson)));

注意HttpRequestHeadersMimeTypes是我自己的类型。

那应该捕获任何包含 +json.

的 content-type