覆盖 WebApiConfig 格式
Override WebApiConfig formatting
在我的 Web API 2 项目的 Register
方法中,我添加了这段代码,以便返回的 JSON 自动采用驼峰式大小写:
public static void Register(HttpConfiguration config) {
var settings = config.Formatters.JsonFormatter.SerializerSettings;
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
settings.Formatting = Formatting.Indented;
不过,我有一种或两种方法,我不希望它那样做,并且真的希望将外壳单独放置。有没有办法从单个路由的方法中覆盖它?
我有数百个方法需要它,只有几个不需要。
您可以尝试类似下面的方法来绕过全局格式化程序设置,
public HttpResponseMessage Get()
{
Person content = new Person() { PersonID = 1, PersonName = "name" };
HttpResponseMessage resposne = new HttpResponseMessage();
resposne.Content = new ObjectContent(content.GetType(), content, new JsonMediaTypeFormatter());
return resposne;
}
在我的 Web API 2 项目的 Register
方法中,我添加了这段代码,以便返回的 JSON 自动采用驼峰式大小写:
public static void Register(HttpConfiguration config) {
var settings = config.Formatters.JsonFormatter.SerializerSettings;
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
settings.Formatting = Formatting.Indented;
不过,我有一种或两种方法,我不希望它那样做,并且真的希望将外壳单独放置。有没有办法从单个路由的方法中覆盖它?
我有数百个方法需要它,只有几个不需要。
您可以尝试类似下面的方法来绕过全局格式化程序设置,
public HttpResponseMessage Get()
{
Person content = new Person() { PersonID = 1, PersonName = "name" };
HttpResponseMessage resposne = new HttpResponseMessage();
resposne.Content = new ObjectContent(content.GetType(), content, new JsonMediaTypeFormatter());
return resposne;
}