【发布时间】:2015-12-30 19:39:43
【问题描述】:
默认情况下,我的 Web API 中有 camelCase,但我需要在特定控制器(或特定 http 操作)中禁用此设置。这可能吗?
【问题讨论】:
标签: asp.net-web-api
默认情况下,我的 Web API 中有 camelCase,但我需要在特定控制器(或特定 http 操作)中禁用此设置。这可能吗?
【问题讨论】:
标签: asp.net-web-api
我用这个答案解决了这个问题:https://stackoverflow.com/a/19959579/3621839
我改为做相反的事情,只是:
using System;
using System.Linq;
using System.Web.Http.Controllers;
using System.Net.Http.Formatting;
using Newtonsoft.Json.Serialization;
public class DisableCamelCaseSerialization : Attribute, IControllerConfiguration
{
public void Initialize(HttpControllerSettings controllerSettings, HttpControllerDescriptor controllerDescriptor)
{
var formatter = controllerSettings.Formatters.OfType<JsonMediaTypeFormatter>().Single();
controllerSettings.Formatters.Remove(formatter);
formatter = new JsonMediaTypeFormatter
{
SerializerSettings = { ContractResolver = new DefaultContractResolver() }
};
controllerSettings.Formatters.Add(formatter);
}
}
【讨论】: