Loading ...

Manage Serialization In Net Core 2 0

Hello everybody,

today I want to write a short notice on how to manage uppercase/lowercase options for serialization in .Net Core.

In mine practice I often had situation, when javascript or typescript code sends me some staff in lowercase class names, but in C# I'm used to Upper case class names. 

Another option that you sometime can need is switching between xml and json serialization. How those options can be managed in .Net Core 2.0 ?

For both of those options ( and even more ) you can use pipeline management of Startup class of ConfigureServices method.

For example if you need to have xml serialization output you can use following code:

public class Startup
    {
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc()
                .AddMvcOptions(o => o.OutputFormatters.Add(
                    new XmlDataContractSerializerOutputFormatter()));

 

And if you want to switch default naming from camel case to Upper case, then following code in Startup class can be added:

public class Startup
    {
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc()
                .AddJsonOptions(o =>
                {
                    if (o.SerializerSettings.ContractResolver != null)
                    {
                        var castedResolver = o.SerializerSettings.ContractResolver
                            as DefaultContractResolver;
                        castedResolver.NamingStrategy = null;
                    }
                });
        }

 

with such changes you can easier or harder to manipulate your input/output from .Net MVC controllers

Managing serialization and naming conventions in .NET Core is just one of many challenges in Acumatica development. If you need custom integrations, optimized workflows, or tailored solutions for your Acumatica ERP, we’re here to help!

👉 Leave a request today, and let’s discuss how we can customize Acumatica to fit your business needs perfectly.