Access configuration with .Net Core

.Net Core is an open source framework developed on github. For those who are new to it, .Net core is a paradigm shift from the previous release (in a good way). It is an implementation of OWIN (Open web interface for Net).

In previous frameworks, we had appsettings.config file (i.e. for console app) where we configure various key value pairs apart from some project specific settings. In .Net Core (2.0) console App, we don’t get .config file by default.

Below steps will help you reading the config values from config files in .Net Core.

Reading AppSettings using previous System.Configuration.ConfigurationManager class


This won’t work in .Net Core as System.Configuration is not present for Core yet (till Core 2.0). You need to do as per below.

  • Create a Console App with .Net Core 2.0
  • Create a appsettings.json file and add to the root of the project.
  • Add desired key value settings in this file.

“docDbSettings”: {
“EndpointUrl”: “https://localhost/443”,
“AuthKey”: “134KJKJSHDKFJL###LKJSLKFGK;E 12934903459-          @@@0983459+==”,
“DatabaseId”: “ToDoList”,
“CollectionId”: “Items”

  • Right click on this json file and select “Copy To Output directory” to “copy always” . This will ensure that file is present in client under ‘bin\Debug\netcoreapp2.0’.
  • Install the below nuget packages
    • Microsoft.Extensions.Configuration
    • Microsoft.Extensions.Configuration.FileExtensions
    • Microsoft.Extensions.Configuration.Json
  • Below is the code to set upConfigurationBuilder which is equivalent to previous ConfigurationManager class to read the keys.
private static IConfiguration Configuration;

static void Main(string[] args)
    var builder = new ConfigurationBuilder()

    Configuration = builder.Build();

    // read the keys
    var Endpoint = Configuration["docDbSettings:EndpointUrl"]?.ToString(); 
    var Key = Configuration["docDbSettings:AuthKey"]?.ToString();
    var DatabaseId = Configuration["docDbSettings:DatabaseId"]?.ToString();
    var CollectionId = Configuration["docDbSettings:CollectionId"]?.ToString();  
  • You can notice the tags traversal supported withing json structure. It even supports accessing the keys with index like [“superadmins[0]:Name”] if  it is an array of array like the below


“superadmins”: [
“Name”: “XYZ”,
“email”: “”
“Name”: “XYZ”,
“email”: “”



You can get more details from Microsoft documentation on here

You can also read an excellent article from Scott Hanselman on how to secure the config file having connection strings and other keys better in cloud and CI-CD ready development world.


Hope it helps!



About saxenapraveen

I work with Microsoft and have 12 years of experience in developing,designing and leading reliable and scalable solutions for cloud and device ready businesses.

Posted on November 1, 2017, in .NET, .Net Core and tagged , , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: