Aloe.Utils.Configuration.Default 1.0.2

dotnet add package Aloe.Utils.Configuration.Default --version 1.0.2
                    
NuGet\Install-Package Aloe.Utils.Configuration.Default -Version 1.0.2
                    
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="Aloe.Utils.Configuration.Default" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Aloe.Utils.Configuration.Default" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="Aloe.Utils.Configuration.Default" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Aloe.Utils.Configuration.Default --version 1.0.2
                    
#r "nuget: Aloe.Utils.Configuration.Default, 1.0.2"
                    
#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.
#:package Aloe.Utils.Configuration.Default@1.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Aloe.Utils.Configuration.Default&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=Aloe.Utils.Configuration.Default&version=1.0.2
                    
Install as a Cake Tool

Aloe.Utils.Configuration.Default

Aloe.Utils.Configuration.Default is a lightweight utility that, even when using ConfigurationBuilder on its own, provides the standard loading of configuration files, environment variables, command-line arguments, and development secrets—just as HostBuilder does by default.

Main Features

  • One-line configuration setup with AddDefault<T> method
  • Automatic loading of:
    • Base configuration file (appsettings.json)
    • Environment-specific configuration files (e.g., appsettings.Development.json)
    • User Secrets (in development environment)
    • Environment variables
    • Command-line arguments
  • Support for file change monitoring with automatic reload

Supported Environments

  • .NET 9 and later
  • Used in conjunction with Microsoft.Extensions.Configuration.ConfigurationBuilder

Usage

using Microsoft.Extensions.Configuration;
using Aloe.Utils.Configuration.Default;

// Create a ConfigurationBuilder
var configurationBuilder = new ConfigurationBuilder()
    .SetBasePath(AppContext.BaseDirectory)
    // Not required when using Host.CreateApplicationBuilder(args) instead of ConfigurationBuilder.
    .AddDefault<Program>(args, reloadOnChange: true);

// Build and use the host
using var host = builder.Build();
var config = host.Services.GetRequiredService<IConfiguration>();

// Access configuration values
var connectionString = config.GetConnectionString("DefaultConnection");
var appName = config["Application:Name"];

Notes

Not Required When Using Generic Host

This utility is designed for use with ConfigurationBuilder alone, as the Generic Host already loads these items by default. When using the Generic Host, these configurations are already loaded by default.

// Web host builder available since ASP.NET Core 2.1
IWebHostBuilder webHostBuilder2_1 = WebHost.CreateDefaultBuilder(args);

// Generic host builder available since .NET Core 3.0
// At this time, ASP.NET Core and the interface were not unified, and the writing style was inconsistent
IHostBuilder hostBuilder3_0 = Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args);

// Host builder introduced in .NET 6 for Minimal API
// ASP.NET Core side's response to interface unification
WebApplicationBuilder webAppBuilder6 = Microsoft.AspNetCore.Builder.WebApplication.CreateBuilder(args);

// Generic host builder introduced in .NET 7
// Interface unification and more consistent writing style
HostApplicationBuilder hostAppBuilder7 = Microsoft.Extensions.Hosting.Host.CreateApplicationBuilder(args);

// Lighter minimal configuration version added in .NET 8 (preview)
// For Minimal APIs, does not load configuration files
//WebApplicationBuilder slimBuilder8 = Microsoft.AspNetCore.Builder.WebApplication.CreateSlimBuilder(args);

Build Only Once When Using reloadOnChange: true

When using reloadOnChange: true with ConfigurationBuilder, the monitoring becomes active and prevents garbage collection. Therefore, if you use this setting, you should only build the configuration once at application startup.

License

MIT License

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 144 6/5/2025
1.0.1 73 5/24/2025
1.0.0 70 5/24/2025