.NET Core 中 IOptions 有什么用


我只發現IOptions的一個用處——方便了在.NET Core應用程序中使用強類型配置。

如果沒有IOptions,使用強類型配置需要自己解決下面2個問題:

1)將配置文件(比如appsettings.json)中的配置反序列化至配置類的實例中

2)注入配置類的單例

如果有了IOptions,可以通過  Configure<TOptions>(IConfiguration config)  或  Configure<TOptions>(Action<TOptions> configureOptions) 擴展方法一次搞定上面2個問題。

下面看一個例子,我們在將阿里大於的.NET客戶端TopSdk遷移至.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.AddOptions();
services.Configure<TopClientOptions>(Configuration.GetSection("topClient"));

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

在需要讀取TopClientOptions中配置的地方只需通過構造函數注入即可:

public class DefaultTopClient : ITopClient
{
    public DefaultTopClient(IOptions<TopClientOptions> options)
    {
    }
} 

相關隨筆:.NET Core類庫項目中如何讀取appsettings.json中的配置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM