ParametrizedConfiguration 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package ParametrizedConfiguration --version 1.0.0
                    
NuGet\Install-Package ParametrizedConfiguration -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="ParametrizedConfiguration" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ParametrizedConfiguration" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ParametrizedConfiguration" />
                    
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 ParametrizedConfiguration --version 1.0.0
                    
#r "nuget: ParametrizedConfiguration, 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.
#addin nuget:?package=ParametrizedConfiguration&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ParametrizedConfiguration&version=1.0.0
                    
Install as a Cake Tool

ParametrizedConfiguration

ParametrizedConfiguration library presents a configuration provider that uses it`s own configuration data via other providers to parametrize parameter placeholders with values, accessed by parameter keys. By default placeholders defined between two % symbols like %param name%, where param name should be the key of the same configuration, the value of which will be substituted into %param name%. for example: This configuration:

{
  { "param1", "1+%param2%" },
  { "param2", "2+%param3%" },
  { "param3", "3" }
};

will be parametrized into this:

{
  { "param1", "1+2+3" },
  { "param2", "2+3" },
  { "param3", "3" }
};

This can be used to hide sensitive data from publicly stored configurations or to reuse same configuration values in several places. The code below demonstrates this:

using ParametrizedConfiguration;
using Microsoft.Extensions.Configuration;

// Assume secrets are set via environment variables somewere outside this code,
// we set them here just for clarity:
Environment.SetEnvironmentVariable("DatabaseName", "MyDatabase");
Environment.SetEnvironmentVariable("UserName", "Bob");
Environment.SetEnvironmentVariable("Password", "strongPassword");

// Define configuration that will be parametrized with it`s own values:
var configuration = new ConfigurationBuilder()
    .AddEnvironmentVariables()
    .WithParametrization()
    .Build();

// Let`s define our configuration key with parameters. It also won't be here
// in our production code, but will be loaded from configuration providers
// such as json-files or any other defined in ConfigurationBuilder.
configuration["ConnectionStrings:Mssql"] =
    "Server=mssql-server;Database=%DatabaseName%;User Id=%UserName%;Password=%Password%;TrustServerCertificate=True";

// Ok, now let`s get the connection string from configuration:
Console.WriteLine(configuration.GetConnectionString("mssql"));

// Output will be parametrized with values from same configuration:
// Server=mssql-server;Database=MyDatabase;User Id=Bob;Password=strongPassword;TrustServerCertificate=True
Product 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.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on ParametrizedConfiguration:

Package Downloads
ConfigurationRepository.Dapper

Configuration repository provider that stored in a database and accessed via Dapper ORM.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.1 121 7/1/2025
1.1.0 113 6/29/2025
1.0.0 144 6/16/2025