add_settings_file_dotnet_console
Table of Contents
Add Settings File to .NET Console Application
App Settings File
Create appsettings.json file in project root. Example contents:
- appsettings.json
{ "Settings": { "Title": "My Application", "Timeout": 30 } }
Packages / Project Output
Add the following packages to the project's .csproj file:
<ItemGroup> <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.4" /> <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="7.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" /> </ItemGroup>
Add the following directive to copy the appsettings file with the binary:
<ItemGroup> <Content Include="appsettings.json"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> </ItemGroup>
Settings Class
Create a class to hold the settings:
public sealed class AppSettings { public required string Title { get; set; } public required int Timeout { get; set; } }
Initialize Configuration
Initialize the configuration, and retrieve the settings:
IConfiguration config = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .AddEnvironmentVariables() .Build(); AppSettings appSettings = config.GetRequiredSection("Settings").Get<AppSettings>();
Access Settings
Access the settings:
var title = appSettings.Title; var timeout = appSettings.Timeout;
Alternate Access Method
If you use this method exclusively, you don't need the settings class.
var title = config.GetValue<string>("Settings:Title"); var timeout = config.GetValue<int>("Settings:Timeout");
add_settings_file_dotnet_console.txt · Last modified: 2024/08/11 18:05 by jimc