其他分享
首页 > 其他分享> > .net 5 获取配置文件 IOptions

.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();
复制代码

标签:set,TopClientOptions,配置文件,Value,IOptions,provider,net,public,GetRequiredService
来源: https://www.cnblogs.com/lzjsky/p/15783013.html