zoukankan      html  css  js  c++  java
  • .net 5 获取配置文件 IOptions

    我只发现IOptions的一个用处——方便了在.NET Core应用程序中使用强类型配置。

    有如下appsettings.json配置文件

    复制代码
    {
      "topClient": {
        "serverUrl": "",
        "appKey": "",
        "appSecret":  ""
      }
    }
    复制代码

    为此定义了一个配置类TopClientOptions:

    public class TopClientOptions
    {
        public string ServerUrl { get; set; }
        public string AppKey { get; set; }
        public string AppSecret { get; set; }
    }

    然后通过在Startup的ConfigureServices()添加下面的代码,就可以将appsettings.json中的配置绑定到TopClientOptions的实例,并完成依赖注入。

    services.Configure<TopClientOptions>(Configuration.GetSection("topClient"));

    (注:需要安装NuGet包 Microsoft.Extensions.Options.ConfigurationExtensions )

    在需要读取TopClientOptions中配置的地方只需通过构造函数注入即可:

    public class DefaultTopClient : ITopClient
    {
        public DefaultTopClient(IOptions<TopClientOptions> options)
        {
        }
    } 
    复制代码
    var provider = services.BuildServiceProvider();
                IWebHostEnvironment environment = provider.GetRequiredService<IWebHostEnvironment>();
                CurrentPath = Path.Combine(environment.ContentRootPath, "").ReplacePath();
    
                Secret = provider.GetRequiredService<IOptions<Secret>>().Value;
    
                CreateMember = provider.GetRequiredService<IOptions<CreateMember>>().Value ?? new CreateMember();
                ModifyMember = provider.GetRequiredService<IOptions<ModifyMember>>().Value ?? new ModifyMember();
    
                GlobalFilter = provider.GetRequiredService<IOptions<GlobalFilter>>().Value ?? new GlobalFilter();
    复制代码
  • 相关阅读:
    最小生成树
    单源最短路
    插入排序 静态链表转为有序数组
    不定时更新
    huffman
    二叉树
    宽度优先搜索
    深度优先搜索
    链表
    jQuery学习中 attr() 和 prop() 的区别
  • 原文地址:https://www.cnblogs.com/lzjsky/p/15783013.html
Copyright © 2011-2022 走看看