packages/Microsoft.Extensions.Options.8.0.0/PACKAGE.md
(开头部分) 5KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
## About
`Microsoft.Extensions.Options` provides a strongly typed way of specifying and accessing settings using dependency injection and acts as a bridge between configuration, DI, and higher level libraries. This library is the glue for how an app developer uses DI to configure the behavior of a library like HttpClient Factory. This also enables user to get a strongly-typed view of their configuration.
Within this package, you'll find an options validation source generator that generates exceptionally efficient and optimized code for validating options.
## Key Features
* Offer the IValidateOptions interface for the validation of options, along with several generic ValidateOptions classes that implement this interface.
* OptionsBuilder to configure options.
* Provide extension methods for service collections and options builder to register options and validate options.
* Supply a set of generic ConfigureNamedOptions classes that implement the IConfigureNamedOptions interface for configuring named options.
* Provide a source generator that generates validation code for options.
* Options caching, managing and monitoring.
## How to Use
#### Options validation example
```C#
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Load the configuration and validate it
builder.Services.AddOptions<MyConfigOptions>()
.Bind(builder.Configuration.GetSection(MyConfigOptions.MyConfig))
.ValidateDataAnnotations();
var app = builder.Build();
// Declare the option class to validate
public class MyConfigOptions
{
public const string MyConfig = "MyConfig";
[RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$")]
public string Key1 { get; set; }
[Range(0, 1000,
ErrorMessage = "Value for {0} must be between {1} and {2}.")]
public int Key2 { get; set; }
public int Key3 { get; set; }
}
```
#### Using IValidateOptions to validate options
```C#
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Configuration to validate
后面还有 110 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
