選項模式將選項注入服務
使用 ASP.NET Core,Microsoft 團隊還引入了 Options 模式,該模式允許具有強型別選項,並且一旦配置了將選項注入服務的能力。
首先,我們從強型別類開始,它將保留我們的配置。
public class MySettings
{
public string Value1 { get; set; }
public string Value2 { get; set; }
}
並且在 appsettings.json
中有一個條目。
{
"mysettings" : {
"value1": "Hello",
"value2": "World"
}
}
接下來,我們在 Startup 類中初始化它。有兩種方法可以做到這一點
-
直接從
appsettings.json``mysettings
部分載入它services.Configure<MySettings>(Configuration.GetSection("mysettings"));
-
手動完成
services.Configure<MySettings>(new MySettings { Value1 = "Hello", Value2 = Configuration["mysettings:value2"] });
appsettings.json
的每個層次級別由:
分隔。由於value2
是mysettings
物件的屬性,我們通過mysettings:value2
訪問它。
最後,我們可以使用 IOptions<T>
介面將選項注入我們的服務
public class MyService : IMyService
{
private readonly MySettings settings;
public MyService(IOptions<MySettings> mysettings)
{
this.settings = mySettings.Value;
}
}
備註
如果在啟動期間未配置 IOptions<T>
,則注入 IOptions<T>
將注入 T
類的預設例項。