Decode.Extensions.Options
1.0.2
dotnet add package Decode.Extensions.Options --version 1.0.2
NuGet\Install-Package Decode.Extensions.Options -Version 1.0.2
<PackageReference Include="Decode.Extensions.Options" Version="1.0.2" />
<PackageVersion Include="Decode.Extensions.Options" Version="1.0.2" />
<PackageReference Include="Decode.Extensions.Options" />
paket add Decode.Extensions.Options --version 1.0.2
#r "nuget: Decode.Extensions.Options, 1.0.2"
#:package Decode.Extensions.Options@1.0.2
#addin nuget:?package=Decode.Extensions.Options&version=1.0.2
#tool nuget:?package=Decode.Extensions.Options&version=1.0.2
Decode.Extensions.Options
Utility extensions for the Options Pattern in .NET, ensuring that configurations are not only registered but also present and valid at runtime.
📦 Installation
dotnet add package Decode.Extensions.Options
🛠️ Usage
1. Registering Options with Mandatory Section
The AddValidatedOptions<T> method ensures that the section exists in your appsettings.json. By default, it looks for a section with the same name as the class T.
using Decode.Extensions.Options;
// In Program.cs
builder.Services.AddValidatedOptions<DatabaseSettings>(builder.Configuration);
2. Immediate Configuration Access
Retrieve a configuration value directly from IConfiguration with immediate validation.
var settings = builder.Configuration.GetValidatedSectionValue<MySettings>();
3. Benefit
Avoid "Silent Failures" where your application starts but crashes later because an IOptions<T> was injected with empty values due to a missing section in the configuration provider.
📄 License
MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
-
net8.0
-
net9.0
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.