Skip to content

lemworks/generators-configuration

Repository files navigation

Lemworks.Generators.Configuration

Latest version License: MIT NuGet Downloads

Source-generated configuration keys from your appsettings.json

Setup

Install the package

dotnet add package Lemworks.Generators.Configuration

Add the following to your .csproj file

<ItemGroup>
    <AdditionalFiles Include="appsettings.json" />
    <Content Include="appsettings.json" CopyToOutputDirectory="Always" /> <!-- Not needed in Web projects -->
</ItemGroup>

Create an appsettings.json file with some content

{
  "ConnectionStrings": {
    "SqlServer": "Server=(localdb)\\mssqllocaldb;Database=DatabaseName;Trusted_Connection=True"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning"
    }
  }
}

The keys will be generated as const strings in a AppSettings class

using System;

namespace Generated.Configuration
{
    public static class AppSettings
    {
        public static class ConnectionStrings
        {
            public const string SqlServer = "ConnectionStrings:SqlServer";
        }
        
        public static class Logging
        {
            public static class LogLevel
            {
                public const string Default = "Logging:LogLevel:Default";
                public const string Microsoft = "Logging:LogLevel:Microsoft";
            }
        }
    }
}

Use the keys in your code like this

using Generated.Configuration;

var configuration = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .Build();
        
configuration.GetConnectionString(AppSettings.ConnectionStrings.SqlServer) // "Server=(localdb)\\mssqllocaldb;Database=DatabaseName;Trusted_Connection=True"
configuration[AppSettings.Logging.LogLevel.Default] // "Information"
configuration[AppSettings.Logging.LogLevel.Microsoft] // "Warning"

About

Source-generated configuration keys from your appsettings.json

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors