Webion.Extensions.Configuration.Abstractions 1.0.0

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

Webion.Extensions.Configuration.Abstractions

Webion.Extensions.Configuration.Abstractions is a lightweight library designed to provide abstractions and utilities for working with application configuration in .NET. It enables developers to define, structure, and dynamically describe configuration settings using a unified interface.

Features

  • ISetting Interface:

    • A simple abstraction for application configuration sections.
    • Ensures all configuration settings are structured uniformly.
  • OptionsDescriptor Utility:

    • Scans assemblies for classes implementing the ISetting interface.
    • Generates key-value mappings of configuration properties with optional hierarchical section prefixes.
    • Simplifies working with complex application settings or nested configuration structures.

Requirements

  • Target Framework: .NET 9.0

Installation

You can install this library via NuGet:

dotnet add package Webion.Extensions.Configuration.Abstractions --version 1.0.0

Quick Start

Define a Configuration Section

Implement the ISetting interface to define your configuration settings:

using Webion.Extensions.Configuration.Abstractions;

public class AppSettings : ISetting
{
    public string Section => "App";

    public string Environment { get; set; } = "Production";
    public int MaxRetries { get; set; } = 5;
}

Generate Descriptions of Settings

Use the OptionsDescriptor utility to inspect and describe the settings:

Describe All Settings in an Assembly:
var descriptions = OptionsDescriptor.DescribeAssemblyContaining<AppSettings>();

foreach (var (key, value) in descriptions)
{
    Console.WriteLine($"{key}: {value}");
}
// Example Output:
// App:Environment: Production
// App:MaxRetries: 5
Describe a Specific Settings Class:
var appDetails = OptionsDescriptor.Describe<AppSettings>();

foreach (var (key, value) in appDetails)
{
    Console.WriteLine($"{key}: {value}");
}
// Example Output:
// App:Environment: Production
// App:MaxRetries: 5

Package Metadata

Contributing

If you wish to contribute, feel free to open an issue or submit a pull request on the GitHub repository.


Developed and maintained by Webion SRL.

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.
  • net9.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.3 983 5/1/2025
1.0.2 596 4/14/2025
1.0.1 224 4/13/2025
1.0.0 217 4/13/2025