Bra*_*ord 31 asp.net asp.net-web-api
在ASP.NET WebAPI中,我知道您可以使用global.aspx中的CamelCasePropertyNamesContractResolver()将默认的json格式化程序设置为使用驼峰大小写,这将强制所有json序列化为驼峰大小写.
但是,我需要能够在"每个控制器"实例上设置它,而不是全局解决方案.
这可能吗?
Bra*_*ord 66
感谢@KiranChalla,我能够比我想象的更轻松.
这是我创建的非常简单的类:
using System;
using System.Linq;
using System.Web.Http.Controllers;
using System.Net.Http.Formatting;
using Newtonsoft.Json.Serialization;
public class CamelCaseControllerConfigAttribute : 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 CamelCasePropertyNamesContractResolver()}
};
controllerSettings.Formatters.Add(formatter);
}
}
Run Code Online (Sandbox Code Playgroud)
然后只需将该属性添加到您想要CamelCase的任何Controller类中.
[CamelCaseControllerConfig]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7840 次 |
| 最近记录: |