ConfigManagerPlus 1.0.0
dotnet add package ConfigManagerPlus --version 1.0.0
NuGet\Install-Package ConfigManagerPlus -Version 1.0.0
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="ConfigManagerPlus" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ConfigManagerPlus" Version="1.0.0" />
<PackageReference Include="ConfigManagerPlus" />
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 ConfigManagerPlus --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ConfigManagerPlus, 1.0.0"
#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 ConfigManagerPlus@1.0.0
#: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=ConfigManagerPlus&version=1.0.0
#tool nuget:?package=ConfigManagerPlus&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
ConfigManagerPlus
A flexible and lightweight configuration manager for .NET with support for JSON, YAML, INI, .env, plus hot reload, environment variables, command-line overrides, typed getters, section access, validation, and secret masking.
✨ Features
- 📂 Multiple file formats: JSON, YAML, INI,
.env
- 🔄 Hot reload: Auto-reload config on file changes
- 🌐 Overrides: Environment variables & command-line arguments
- 🧩 Merging: Combine multiple sources (last wins)
- 🎯 Typed getters:
GetInt
,GetBool
,GetDouble
,GetGuid
,GetTimeSpan
- 📦 Section API: Access nested configs via
cfg.Section("Database")
- ✅ Validation: Require specific keys
- 🛡️ Secret masking: Hide sensitive values when dumping
- 🪞 Snapshot: Immutable copy of current config
- 🔗 Bind<T>: Map config into POCOs
📦 Installation
dotnet add package ConfigManagerPlus
🚀 Quick Start
using ConfigManagerPlus;
// Build config with multiple sources
var cfg = new ConfigManager()
.AddJson("appsettings.json")
.AddYaml("config.yaml")
.AddIni("settings.ini")
.AddEnvFile(".env")
.AddEnvironmentVariables("APP__") // Prefix filter
.AddCommandLine(args);
// Typed access with defaults
int port = cfg.GetInt("Server:Port", 8080);
bool debug = cfg.GetBool("Server:Debug", false);
// Section view
var dbSection = cfg.Section("Database");
string conn = dbSection.Get("ConnectionString", "localhost");
// Validation
cfg.Require("Database:ConnectionString", "Server:Port");
// Bind to POCO
var dbSettings = cfg.Section("Database").Bind<DbSettings>();
// Pretty dump with secret masking
Console.WriteLine(cfg.Dump());
📂 Example Configs
appsettings.json
{
"Server": {
"Port": 5000,
"Debug": true
},
"Database": {
"ConnectionString": "Server=.;Database=App;Trusted_Connection=True;"
}
}
.env
APP__Server__Port=6000
APP__Server__Debug=false
APP__Database__ConnectionString=Server=db;User=app;Password=SuperSecret
🔥 Hot Reload
ConfigManager+ watches JSON, YAML, INI, and .env
files for changes.
You can subscribe to changes:
cfg.Changed += (s, e) =>
{
Console.WriteLine($"Config changed from {e.SourceName}::{e.SourcePath}");
};
🛡️ Secret Masking
Keys containing password
, secret
, token
, key
, connectionstring
are automatically masked in Dump()
:
Database:ConnectionString = ************True;
ApiToken = ********abcd
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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. net9.0 was computed. 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.
-
net8.0
- No dependencies.
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.0 | 73 | 9/12/2025 |