簡體   English   中英

.Net Core如何多次注冊同一個接口?

[英]How to register same interface multiple times in .Net Core?

我正在嘗試以不同方式注冊由同一個 class 實現的 2 個接口。 我當前的實現如下所示

IInterface1: ServiceClass

IInterface2: ServiceClass ,其中 IInterface2 繼承自 IInterface1

然后在我的 Startup.cs 中,我將它們注冊為

services.AddScoped<IInterface1>(x => {return ServiceClass(ConnectionString1)}) services.AddScoped<IInterface2>(x => {return ServiceClass(ConnectionString2)})

問題是我正在創建一個庫,所以我不希望有一個冗余接口。 理想情況下,我想從庫中刪除 IInterface2。 有什么辦法可以用不同的參數注冊相同的接口嗎?

我查看了此處提出的所有相關問題,但所有要求都不相同,因為其中大多數都有不同的類來實現它們。

據我所知,內置 DI 無法做到這一點。 要解決它,您可以使用Autofac ,例如,它允許這種情況。 在 asp .net 核心中,您必須將Autofac 設置為 DI 容器 接下來,您可以注冊同一接口的多個實現。 要解決這些問題,請使用IEnumerable<T>

還有一件事——您不必考慮 DI 也不必強制執行 DI。 DI 機制超出了您的興趣范圍。

暫無
暫無

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

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