Skip to main content

Posts

Showing posts with the label ASP.NET Core 3.1

Getting host information from current the URL in ASP.NET Core 3.1

While working on web application, it’s quite natural that we need to jump between various environments (i.e. Development, Testing, Production, etc.) during various phases of product life cycle. In other words, all these environments may have different-different host addresses. Let’s have a look at a few of those. During the development phase, we usually run our application with http://localhost:8080/features/..., where our host is localhost:8080 During the testing phase, the same application can be run on http://www.consumerapps.com/features/..., where our host is www.consumerapps.com Now, what if we want to get the host name in log file for an audit purpose. We cannot go and hard code  it in the application, as it may change based on the environment on which application is running. In ASP.NET Core 3.1, it can be easily achieved using HttpContext . First change we have to do is, to register IHttpContextAccessor as a singleton: services.AddSingleton<IHttpConte

Globally configuring values for JSON Serializer in ASP.NET Core 3.1

This article will focus on how one can set certain constraints on the given data type for JSON serialization and that too at the application level, which means changes need to be done at a global level rather than doing for specific custom class or property. We will also see, how one can fallback to default settings, post this application level change. Let’s understand this with the help of an example. Making application level changes for JSON serialization Here problem statement is, we want all the float values to be restricted to 3 decimal places. Now, one way to achieve this is to decorate all the float properties in all the model classes with specific attribute using  [JsonConverter(typeof(…)] . With above attribution, one can indeed achieve the goal of conversion or data formatting, but what if there are so many float values across the application. Is it feasible to go and change each and every single float property under every model class? I feel, NO :( So, the soluti