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