zoukankan      html  css  js  c++  java
  • .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();
            }

    综上所有配置的使用方法

  • 相关阅读:
    容器占用空间的小问题
    一个ipv4到ipv6的移植问题
    一个linux内核模块移植到低版本时发生的异常
    一个发包乱序问题记录
    一个docker镜像中的目录删除不了问题
    C/C++(共用体与枚举)
    C/C++(数据结构栈的实现)
    C/C++(结构体)
    C/C++(内存管理)
    C/C++(指针数组)
  • 原文地址:https://www.cnblogs.com/May-day/p/13441662.html
Copyright © 2011-2022 走看看