簡體   English   中英

是否有等效於 IServiceCollection 的“TryAdd”方法與 IOptions 一起使用<T>圖案?

[英]Is there an equivalent to IServiceCollection's "TryAdd" methods for use with the IOptions<T> pattern?

我發現 .NET Core IOptions 模式(如下面的語法所示)非常有幫助。

services.Configure<MySettings>(configuration.GetSection("MySettings"));

我還發現 TryAdd 方法有助於防止重復服務注冊,如下所示:

services.TryAddTransient<IMyService, MyService>();

我想知道是否有人知道使用 IOptions 完成相同事情的任何技術,或者重復注冊保護是否內置於框架中。 換句話說,我正在尋找這樣的東西:

services.TryConfigure<MySettings>(configuration.GetSection("MySettings"));

實際上,我有同樣的“問題”。 我是這樣解決的:

if (!services.Any(d => d.ServiceType == typeof(IConfigureOptions<MySettings>)))
{
    services.Configure<MySettings>(configSection);
}

此解決方案基於Microsoft TryAdd 代碼

提示:您可以為其創建擴展方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM