JLib.Configuration 0.8.8

Prefix Reserved
dotnet add package JLib.Configuration --version 0.8.8                
NuGet\Install-Package JLib.Configuration -Version 0.8.8                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="JLib.Configuration" Version="0.8.8" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add JLib.Configuration --version 0.8.8                
#r "nuget: JLib.Configuration, 0.8.8"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install JLib.Configuration as a Cake Addin
#addin nuget:?package=JLib.Configuration&version=0.8.8

// Install JLib.Configuration as a Cake Tool
#tool nuget:?package=JLib.Configuration&version=0.8.8                

Project. JLib.Configuration

provides reflection based config section access either direct or via dependency injection.

Adding Config to Service Collections

using JLib.Configuration;
using JLib.Reflection.DependencyInjection;

IConfiguration myConfig = ...;

// ...
var services = new ServiceCollection ()
    .AddTypeCache(out var typeCache, nameof(JLib))
    .AddAllConfigSections(myConfig, typeCache)
    // ...
    ;
// ...

using var provider = services.BuildServiceProvider();

var section = provider.Services.GetRequiredService<MyConfigSection>();

[ConfigSectionName("Test")]
public class MyConfigSection
{
    public string MyValue { get; init; }
}

Directly retrieving config section objects

using JLib.Configuration;

IConfiguration myConfig = ...;

var configSection myConfig.GetConfigSectionObject<MyConfigSection>();

[ConfigSectionName("Test")]
public class MyConfigSection
{
    public string MyValue { get; init; }
}

Environment Behavior

{
    "Environment": "Dev1",
    "SectionA":{
        "Environment": "Dev2",
        "Dev1":{
            "MyValue":"Ignored"
        },
        "Dev2":{
            "MyValue":"Used"
        },
        "MyValue":"Ignored"
    },
    "SectionB":{
        "Dev1":{
            "MyValue":"Used"
        },
        "Dev2":{
            "MyValue":"Ignored"
        },
        "MyValue":"Ignored"
    },
    "SectionC":{
        "Environment": "",
        "Dev1":{
            "MyValue":"Ignored"
        },
        "Dev2":{
            "MyValue":"Ignored"
        },
        "MyValue":"Used"
    }
}
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on JLib.Configuration:

Package Downloads
JLib.DependencyInjection

Package Description

JLib

Metapackage for all JLIb packages

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.8.8 418 10/18/2024
0.8.7 267 10/18/2024
0.8.6 215 10/17/2024
0.8.5 300 9/18/2024
0.8.4 251 9/18/2024
0.8.3 292 9/11/2024
0.8.1 357 9/2/2024
0.8.0 272 8/28/2024
0.7.6 293 8/27/2024
0.7.5 259 8/27/2024
0.7.4 283 8/27/2024
0.7.3 285 8/27/2024
0.7.1 288 7/24/2024
0.7.0 471 7/23/2024
0.6.2 539 4/10/2024
0.6.1 289 3/15/2024
0.6.0 284 3/15/2024
0.5.0 285 3/14/2024
0.4.5 296 3/13/2024
0.4.4 284 3/12/2024
0.4.3 361 3/12/2024
0.4.2 329 3/7/2024
0.4.1 301 3/7/2024
0.4.0 313 3/6/2024
0.3.0 309 2/29/2024
0.2.0 307 2/14/2024