【BlogBook书】2、Options:参数选项

科技   科技   2024-01-13 18:01   北京  


2024
B
C
V
P
B
O
O
K


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;}



BCVP代码创新社
专注于 NetCore 相关技术栈的推广,致力于前后端之间的完全分离,从壹开始,让每一个程序员都能从这里学有所成。
 最新文章