BCVP.BOOK 是BlogCore的快速操作手册指南,列举了BlogCore常见的23个基本知识点,没有冗余的讲解,通过直接地、快速地对每个知识点做分步说明,方便初学者快速使用,或者老手查漏补缺!
可以结合ASP.NET8.0视频,快速掌握所有知识点:
https://www.bilibili.com/video/BV13g4y1Z7in
框架中有两种获取参数配置的方式。
本章节是第二种—— 将appsettings.json文件中的所有配置,通过依赖注入的方式,填充到各自对应的对象实例里。
注意:本方法只支持根节点的参数配置,如果想要获取非根节点的,可以做个嵌套的子类。
一、相关的服务注册
// 初始化配置
builder.Host
.ConfigureAppConfiguration((hostingContext, config) =>
{
hostingContext.Configuration.ConfigureApplication();
});
builder.ConfigureApplication();
app.ConfigureApplication();
app.UseApplicationSetup();
// 配置注册
builder.Services.AddAllOptionRegister();
二、使用方式
有2种方式均可使用,看个人的爱好习惯。
使用方式一,静态方式:
1、appsettings.json中定义某个配置
"Redis": {
"Enable": false,
"ConnectionString": "127.0.0.1:6379",
"InstanceName": ""
},
2、按照一定的层级路径,定义具体的实体类
/// <summary>
/// 缓存配置选项
/// </summary>
public sealed class RedisOptions : IConfigurableOptions
{
/// <summary>
/// 是否启用
/// </summary>
public bool Enable { get; set; }
/// <summary>
/// Redis连接
/// </summary>
public string ConnectionString { get; set; }
/// <summary>
/// 键值前缀
/// </summary>
public string InstanceName { get; set; }
}
3、直接调用
var cacheOptions = App.GetOptions<RedisOptions>();
使用方式二,依赖注入方式:
直接在构造函数中,通过IOptions<>注入即可
private readonly SeqOptions _seqOptions;
/// <summary>
/// ValuesController
/// </summary>
public ValuesController(IOptions<SeqOptions> seqOptions)
{
// 测试
_seqOptions = seqOptions.Value;
}