Eigenverft.NetLib.Configuration.Binding
1.0.0.8-g17613f8942
See the version list below for details.
dotnet add package Eigenverft.NetLib.Configuration.Binding --version 1.0.0.8-g17613f8942
NuGet\Install-Package Eigenverft.NetLib.Configuration.Binding -Version 1.0.0.8-g17613f8942
<PackageReference Include="Eigenverft.NetLib.Configuration.Binding" Version="1.0.0.8-g17613f8942" />
<PackageVersion Include="Eigenverft.NetLib.Configuration.Binding" Version="1.0.0.8-g17613f8942" />
<PackageReference Include="Eigenverft.NetLib.Configuration.Binding" />
paket add Eigenverft.NetLib.Configuration.Binding --version 1.0.0.8-g17613f8942
#r "nuget: Eigenverft.NetLib.Configuration.Binding, 1.0.0.8-g17613f8942"
#:package Eigenverft.NetLib.Configuration.Binding@1.0.0.8-g17613f8942
#addin nuget:?package=Eigenverft.NetLib.Configuration.Binding&version=1.0.0.8-g17613f8942&prerelease
#tool nuget:?package=Eigenverft.NetLib.Configuration.Binding&version=1.0.0.8-g17613f8942&prerelease
Eigenverft.NetLib.Configuration.Binding
Make configured lists and dictionaries replace initialized code defaults during standard .NET configuration binding. Choose explicitly what an empty configured collection means.
✨ At a glance
| Package | Eigenverft.NetLib.Configuration.Binding |
| Main API | BindReplacingCollectionDefaults(...) |
| Collections | Mutable lists and dictionaries |
| Empty values | Keep defaults or replace with empty |
| Target frameworks | .NET 8 and .NET 10 |
| License | MIT |
📦 Installation
dotnet add package Eigenverft.NetLib.Configuration.Binding
🚀 Quick start
The built-in binder appends list items and merges dictionary entries when the target already has values. This extension clears a configured mutable collection first, then lets the framework bind and convert its values:
using System.Collections.Generic;
using Eigenverft.NetLib.Configuration.Binding;
using Microsoft.Extensions.Hosting;
HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);
FilterOptions options = new();
builder.Configuration.GetSection("FilterOptions")
.BindReplacingCollectionDefaults(
options,
EmptyCollectionBehavior.UseCodeDefaults);
public sealed class FilterOptions
{
public List<string> Allowed { get; set; } = new() { "default" };
public Dictionary<string, int> Weights { get; set; } = new() { ["default"] = 1 };
}
For options registration, apply the same policy whenever the options infrastructure creates or reloads an instance:
using Microsoft.Extensions.DependencyInjection;
builder.Services
.AddOptions<FilterOptions>()
.BindReplacingCollectionDefaults(
"FilterOptions",
EmptyCollectionBehavior.UseEmptyCollection);
🧭 Behavior and limits
| Configuration state | Result |
|---|---|
| Collection key is missing | Keep code defaults |
| Configured list or dictionary has entries | Replace the initialized collection |
Configured collection is empty with UseCodeDefaults |
Keep code defaults |
Configured collection is empty with UseEmptyCollection |
Replace with an empty collection |
The empty-collection policy is required on every call. The helpers cover initialized mutable IList and IDictionary properties; other property types keep native binder behavior. ConfigurationKeyNameAttribute aliases are honored. Binding, value conversion, BinderOptions, named options, and change-token behavior remain framework-owned.
These APIs use reflection and are annotated for dynamic-code and trimming requirements. Preserve the options members used for binding when publishing a trimmed application.
🎯 Target frameworks
The package targets net8.0 and net10.0.
🔗 Project links
📄 License
| 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 is compatible. 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. |
-
net10.0
- Microsoft.Extensions.Hosting (>= 10.0.0)
-
net8.0
- Microsoft.Extensions.Hosting (>= 8.0.1)
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0.8-gdfdd996480 | 0 | 9/29/2026 |
| 1.0.0.8-g17613f8942 | 0 | 9/29/2026 |
| 1.0.0.6-g28e841270d | 0 | 9/28/2026 |
| 1.0.0.5-gbac57d8b97 | 0 | 9/11/2026 |
| 1.0.0.5-g9537b96514 | 0 | 9/11/2026 |
Initial capability package extracted from Eigenverft.NetLib.Infrastructure.