.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