Configuration in .NET Core
Here’s some basic examples for reading from a configuration file:
1) Create an appsettings.json file in your project.
2) Add this to your csproj file, so that it gets to your output directory:
<ItemGroup> <None Update="appsettings.json"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> </ItemGroup>
3) Install the appropriate NuGet packages:
dotnet add package Microsoft.Extensions.Configuration.Json
dotnet add package Microsoft.Extensions.Configuration.Binder
dotnet add package Microsoft.Extensions.Configuration.Binder
4) Add data to your appsettings file, either as simple key-value pairs, or nest them:
{ "ApplicationName": "Some Application", "ConnectionStrings": { "CS1": "some-connection-string", "CS2": "some-other-connection-string" }, "Queries": { "Q1": { "ConnectionStringKey": "CS1", "QueryText": "some query", "Timeout": 40 }, "Q2": { "ConnectionStringKey": "CS2", "QueryText": "some other query" } } }5) Profit:
public class QueryInfo { public string ConnectionStringKey { get; set; } public string QueryText { get; set; } } var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .Build(); string appName = config["ApplicationName"]; var queries = config.GetSection("Queries").GetChildren() .Select(x => new { x.Key, QueryInfo = x.Get<QueryInfo>() }).ToArray(); foreach (var query in queries) { // Special GetConnectionString reads from "ConnectionStrings" string connString = config.GetConnectionString(query.QueryInfo.ConnectionStringKey); }
Comments
Post a Comment