Appsettings in .NET Core
Define Your appsettings.json
Create an appsettings.json file in the root of your project:
{
  "AppSettings": {
    "FeatureToggle": true,
    "ApplicationName": "MyApp",
    "MaxUsers": 1000
  }
}
Access Configuration in Code
Using IConfiguration
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string[] args)
    {
        var config = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .Build();
        var appName = config["AppSettings:ApplicationName"];
        var maxUsers = config["AppSettings:MaxUsers"];
        Console.WriteLine($"Application Name: {appName}");
        Console.WriteLine($"Max Users: {maxUsers}");
    }
}
Using Strongly-Typed Classes
Define a Class:
public class AppSettings
{
    public bool FeatureToggle { get; set; }
    public string ApplicationName { get; set; }
    public int MaxUsers { get; set; }
}
Bind to the Class:
var builder = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .Build();
var appSettings = builder.GetSection("AppSettings").Get<AppSettings>();
Console.WriteLine($"FeatureToggle: {appSettings.FeatureToggle}");
Console.WriteLine($"Application Name: {appSettings.ApplicationName}");
Console.WriteLine($"Max Users: {appSettings.MaxUsers}");
Environment-Specific Configuration
Create environment-specific files:
- appsettings.Development.json
 - appsettings.Production.json
 
Add settings specific to the environment:
appsettings.Development.json
{
  "AppSettings": {
    "FeatureToggle": false,
    "MaxUsers": 50
  }
}
Configure the environment in Program.cs:
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production";
var config = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddJsonFile($"appsettings.{environment}.json", optional: true)
    .Build();
Inject Configuration into Services
Add Configuration to DI:
builder.Services.Configure<AppSettings>(builder.Configuration.GetSection("AppSettings"));
Access in Controllers or Services:
public class HomeController : Controller
{
    private readonly AppSettings _appSettings;
    public HomeController(IOptions<AppSettings> appSettings)
    {
        _appSettings = appSettings.Value;
    }
    public IActionResult Index()
    {
        ViewData["AppName"] = _appSettings.ApplicationName;
        return View();
    }
}