.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();

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM