MP.FluentValidation.Options
2.0.1
dotnet add package MP.FluentValidation.Options --version 2.0.1
NuGet\Install-Package MP.FluentValidation.Options -Version 2.0.1
<PackageReference Include="MP.FluentValidation.Options" Version="2.0.1" />
paket add MP.FluentValidation.Options --version 2.0.1
#r "nuget: MP.FluentValidation.Options, 2.0.1"
// Install MP.FluentValidation.Options as a Cake Addin #addin nuget:?package=MP.FluentValidation.Options&version=2.0.1 // Install MP.FluentValidation.Options as a Cake Tool #tool nuget:?package=MP.FluentValidation.Options&version=2.0.1
MP.FluentValidation.Options
MP.FluentValidation.Options
is a NuGet package that provides an extension method to integrate FluentValidation
with Microsoft.Extensions.Options
. It allows you to automatically validate configuration settings using
FluentValidation validators.
Installation
To install the package, run the following command in your NuGet Package Manager Console
Install-Package MP.FluentValidation.Options
How It Works
The AddValidatedOptions
extension method:
- Finds the
AbstractValidator
for the specified configuration class. - Validates the configuration values from
appsettings.json
or environment variables. - Registers the configuration class with the validated values in the
IOptions<T>
service.
Usage
Step 1: Define Your Configuration Class
Create a configuration class that represents the settings you want to validate.
public class MyConfiguration
{
public string Name { get; set; }
public int Age { get; set; }
}
Step 2: Define Your Validator
Create a validator class that inherits from AbstractValidator<T>
, where T
is the configuration class.
public class MyConfigurationValidator : AbstractValidator<MyConfiguration>
{
public MyConfigurationValidator()
{
RuleFor(x => x.Name).NotEmpty();
RuleFor(x => x.Age).GreaterThan(0);
}
}
Step 3: Register the Configuration and Validator to the Service Collection
Use the AddValidatedOptions
extension method to register your configuration class and its validator.
services.AddValidatedOptions<MyConfiguration>();
OBS: The AddValidatedOptions
will by default use the MyConfiguration
class as the section name for the configuration
settings. If you want to use a different key, you can pass it as a parameter to the method like this:
services.AddValidatedOptions<MyConfiguration>(sectionName: "MySettings");
Step 4: Use the Configuration in Your Application
Inject IOptions<MyConfiguration>
into your classes to use the validated configuration settings.
public class MyService
{
private readonly MyConfiguration _configuration;
public MyService(IOptions<MyConfiguration> options)
{
_configuration = options.Value;
}
public void DoSomething()
{
// Use the configuration settings
Console.WriteLine($"Name: {_configuration.Name}");
Console.WriteLine($"Age: {_configuration.Age}");
}
}
License
This project is licensed under the MIT License. See the LICENSE file for more details.
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 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- FluentValidation (>= 11.9.2)
- Microsoft.Extensions.DependencyInjection (>= 8.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
-
.NETStandard 2.0
- FluentValidation (>= 11.9.2)
- Microsoft.Extensions.DependencyInjection (>= 8.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
-
net8.0
- FluentValidation (>= 11.9.2)
- Microsoft.Extensions.DependencyInjection (>= 8.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on MP.FluentValidation.Options:
Package | Downloads |
---|---|
Iskra.Core.Auth
Настройка авторизации в Keycloak. |
|
Iskra.Core.ApiDocumentation
Формирование Swagger документации с настройкой авторизации. |
GitHub repositories
This package is not used by any popular GitHub repositories.