ASP.NET选项类 TOptilons(针对appsettings.json自定义配置读取)

一、使用场景

当文件下载路径等等需要写死时,又不可以把路径代码写在业务代码(不好后期维护)时需要写在appsettings.json文件中,这样一来,后面业务代码中用到文件下载路径直接调用appsettings.json中的路径就可以了,
问题是怎么获取appsettings.json文件中的路径,可以直接在业务代码中注册IConfigurationconfiguration.GetSection("ApiSetting")的方式去获取,但是每个都这样获取的话个感觉代码还不够简洁,所以就用到了TOptions选项类

二、概述

本章讲的选项模式是对Configuration配置的功能扩展。 讲这篇时有个专用名词叫“选项类(TOptions)” 。该选项类作用是指:把选项类中的属性与配置来源中的键关联起来。
举个例,假设json文件有个Option1键,选项类中也有个叫Option1的属性名,经过选项配置,这样就能把json中的键的值映射到选项类属性值中。也可以理解在项目应用中,把一个json文件序列化到.net类。

三、使用实例

1、命名空间:

2、程序集

Microsoft.Extensions.Options.dll

3、创建注册TOptions实例类(名字和appsettings.json文件中的字节对应)

namespace MCRP.Core.API.Configuration
{
    public class IISWenJianIP
    {
        public string Host { get; set; }
    }
}

4、appsettings.json文件中创建key-value值实例

{
"IISWenJianIP": {
    "Host": "http://172.19.20.193:44522/" //172.19.20.193:44522
  }
}

5、Startup.cs配置文件的ConfigureServices中把注册TOptions将绑定到的配置实例。

public override void ConfigureServices(IServiceCollection services, IConfiguration configuration){

   services.Configure<IISWenJianIP>(configuration.GetSection("IISWenJianIP"));

}

6、业务代码中直接注入一下就可以用了

private string _iISHost;
public
WenJianController(IOptions<IISWenJianIP> optionsWJ) {
   _iISHost = optionsWJ.Value.Host;
}

 

posted @ 2022-05-26 14:03  猴猴手记  阅读(51)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end