.netcore的配置IConfiguration和IOptions的使用

一,appsettings.json配置添加如下

  "MyOptions": {
    "Id": 2,
    "Name": "appsettings"
  }

二,使用IConfiguration读取配置,如下控制器代码

namespace TestCore.Controllers
{
    [ApiController]
    [Route("[controller]/[action]")]
    public class ConfigTestController : ControllerBase
    {
        private IConfiguration _configuration;
        public ConfigTestController( IConfiguration configuration)
        {
            _configuration = configuration;
        }
        public string GetConfiguration()
        {
            return "-configuration获取:" + _configuration.GetSection("MyOptions").GetValue<string>("Name");
        }
    }
}

ps:测试代码没有更改Program默认配置文件所以默认读的是appsettings.json配置文件

二,IOptions的使用

namespace TestCore.Controllers
{
    [ApiController]
    [Route("[controller]/[action]")]
    public class ConfigTestController : ControllerBase
    {
        private TestModel _options;
        public ConfigTestController(IOptions<TestModel> options)
        {
            _options = options.Value;
        }
        public string GetIOptions()
        {
            return "IOptions获取:" + _options.Name;
        }
    }
}

Startup的ConfigureServices有两种写法,第一是读取配置文件,第二是自己给实体赋值

        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<TestModel>(Configuration.GetSection("MyOptions"));    //获取默认配置文件的值
            //services.Configure<TestModel>(m=> { m.Name = "startup读取";m.Id = 1; });  //获取自己实例的配置
            services.AddControllers();
        }

综上所有配置的使用方法

 

posted @ 2020-08-12 09:36  叶丶梓轩  阅读(1409)  评论(0编辑  收藏  举报