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();
    复制代码
  • 相关阅读:
    从 0 配置 webpack(一)
    Redux
    React Hooks 全解(二)
    日本人要把核污水排进大海,我突然想到几个问题
    突然发现,我的代码还花花绿绿的,挺好看的
    Ghidra ,改道吧,我也准备改道这玩意了
    语音控制?这,看起来很眼熟。
    winafl 工具的编译
    关于 TX 的 WeGame 的一点疑问
    新年的第一个随笔,随便写写吧
  • 原文地址:https://www.cnblogs.com/lzjsky/p/15783013.html
Copyright © 2011-2022 走看看