Force CamelCase on ASP.NET WebAPI Per Controller - Printable Version +- 0Day Forums (https://0day.red) +-- Forum: Coding (https://0day.red/Forum-Coding) +--- Forum: Asp.Net (https://0day.red/Forum-Asp-Net) +--- Thread: Force CamelCase on ASP.NET WebAPI Per Controller (/Thread-Force-CamelCase-on-ASP-NET-WebAPI-Per-Controller) |
Force CamelCase on ASP.NET WebAPI Per Controller - expectation462400 - 07-22-2023 In ASP.NET WebAPI, I know you can set the default json formatter to use camel case using [CamelCasePropertyNamesContractResolver()][1] in the global.aspx which will force ALL json serialization to camel case. However, I need to be able to set it on a "Per Controller" instance, instead of a Global solution. Is this possible? [1]: [To see links please register here] RE: Force CamelCase on ASP.NET WebAPI Per Controller - incompatibilitys523092 - 07-22-2023 This Stack Overflow [answer][1] should be helpful. It shows you how to create an ActionFilter which can be applied to any action where you wish to use CamelCasing. [1]: [To see links please register here] RE: Force CamelCase on ASP.NET WebAPI Per Controller - consumerist200893 - 07-22-2023 Yes, it's possible...you can use `IControllerConfiguration` to define per-controller specific configuration.. [This][1] is a sample which describes this scenario. You can quickly take a look at how this interface should be used over [here][2](from the sample). [1]: [To see links please register here] [2]:[To see links please register here] RE: Force CamelCase on ASP.NET WebAPI Per Controller - franhnkocxhisd - 07-23-2023 Thanks to @KiranChalla I was able to achieve this easier than I thought. Here is the pretty simple class I created: 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); } } Then just add the attribute to any Controller class you want CamelCase. [CamelCaseControllerConfig] RE: Force CamelCase on ASP.NET WebAPI Per Controller - Mrsubmariner3 - 07-23-2023 I know this is pretty old, but I had a problem with the accepted answer because there were other necessary changes to the formatter that were no longer present after removing and re-adding. I did this by just modifying the existing formatter as shown in this Gist: . |