In .NET applications, appsettings.json is a configuration file used to store settings and configuration data. This file is part of the newer configuration system introduced in .NET Core, which is also available in later versions of .NET Framework through the use of compatible libraries. The appsettings.json file is a JSON file, making it easy to read and write.
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning"
}
},
"ConnectionStrings": {
"DefaultConnection": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
},
"AppSettings": {
"PageSize": 10,
"ApiKey": "12345"
}
}
{
"ConnectionStrings": {
"DefaultConnection": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
},
"AppSettings": {
"PageSize": 10,
"ApiKey": "12345",
"Profile": {
"UserName": "lorem",
"Password": "somepassword"
}
},
"Email": "santash92@gmail.com"
}
public void SomeMethod(IConfiguration configuration)
{
// 1. way
var value1 = configuration["Email"]; // Result: santash92@gmail.com
// 2. way
var value2 = _configuration.GetSection("Email").Value; // Result: santash92@gmail.com
// 3.way
var value3 = _configuration.GetValue<string>("Email"); // Result: santash92@gmail.com
}
public void SomeMethod(IConfiguration configuration)
{
var someValue = configuration["Age"]; // Result: null
}
{
"ConnectionStrings": {
"DefaultConnection": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
},
"AppSettings": {
"PageSize": 10,
"ApiKey": "12345",
"Profile": {
"UserName": "lorem",
"Password": "somepassword"
}
},
"Email": "santash92@gmail.com"
}
public void SomeMethod(IConfiguration configuration)
{
// 1. way
var value1 = configuration["AppSettings:PageSize"]; // Result: 10
// 2. way
var value2 = _configuration.GetSection("AppSettings:PageSize").Value; // Result: 10
// 3. way
var value3 = _configuration.GetSection("AppSettings").GetSection("PageSize").Value; // Result: 10
// 4.way
var value4 = _configuration.GetValue<int>("AppSettings:PageSize"); // Result: 10
}
public void SomeMethod(IConfiguration configuration)
{
// 1. way
var value1 = configuration["AppSettings:Profile:UserName"]; // Result: lorem
// 2. way
var value2 = _configuration.GetSection("AppSettings:Profile:UserName").Value; // Result: lorem
// 3. way
var value3 = _configuration.GetSection("AppSettings").GetSection("Profile").GetSection("UserName").Value; // Result: lorem
// 4.way
var value4 = _configuration.GetValue<string>("AppSettings:Profile:UserName"); // Result: lorem
}
{
"AppSettings": {
"PageSize": 10,
"ApiKey": "12345"
},
"Email": "santash92@gmail.com"
}
public class MySettings
{
public int PageSize { get; set; }
public string ApiKey { get; set; }
}
public void SomeMethod(IConfiguration configuration)
{
var mySettings = configuration.GetSection("AppSettings").Get<MySettings>();
Console.WriteLine(mySettings.PageSize) // Result: 10
}
public void SomeMethod(IConfiguration configuration)
{
var email = configuration.GetSection("Email").Get<string>();
Console.WriteLine(email) // Result: santash92@gmail.com
}
{
"AppSettings": {
"PageSize": 10,
"ApiKey": "12345"
},
"Email": "santash92@gmail.com"
}
public class MySettings
{
public int PageSize { get; set; }
public string ApiKey { get; set; }
}
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MySettings>(Configuration.GetSection("AppSettings"));
}
public class SomeService
{
private readonly MySettings _mySettings;
public SomeService(IOptions<MySettings> options)
{
_mySettings = options.Value;
}
public void ReadSettings()
{
var apiKey = _mySettings.ApiKey; // Result: "12345"
}
}
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning"
}
},
"ConnectionStrings": {
"DefaultConnection": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
},
"AppSettings": {
"PageSize": 10,
"ApiKey": "12345"
}
}
public void SomeMethod(IConfiguration configuration)
{
var connectionString = configuration.GetConnectionString("DefaultConnection");
}
{
"MyArray": ["Value1", "Value2", "Value3"],
"Countries": {
"Asia": ["Singapore", "Kyrgyzstan", "Malaysia"]
}
}
public void SomeMethod(IConfiguration configuration)
{
var myArray = configuration.GetSection("MyArray").Get<List<string>>();
var countries = configuration.GetSection("Countries:Asia").Get<List<string>>();
}