簡體   English   中英

asp.net core 2.0 DI 將多個 IInterface 類注入控制器

[英]asp.net core 2.0 DI Injecting multiple classes of IInterface into a controller

我將創建數百個類。 如果都實現了同一個類,是不是要一一注冊?

例子

public class Service<TEntity>: IService<TEntity> {...}

public Interface IService<TEntity> where TEntity : class {...}

public class class1 : Service<apple>, IClass1 {...}

public class class234 : Service<orange>, IClass234 {...}

在我的控制器中,我想像這樣注入它

public class FoodController : Controller{
     private IClass1 _class1;
     private IClass234 _class234;

     FoodController(IClass1 ic1, IClass234 ic234){
          _class1 = ic1;
          _class234 = ic234;
     }
}

我之前在舊版本的ASP.NET使用 Unity 完成了此操作,如何使用ASP.NET CORE 2.0的內置 DI 執行此操作?

在控制器中,我可以在構造函數中注入IClass1IClass234的具體接口。 這就是我想要實現的目標,因為我還想使用類實現的其他接口中的其他方法。

public void ConfigureServices(IServiceCollection services)
{
    // Is there a way to register all 234 classes without typing out services.addTransient...
}

使用標准 DI 容器,您必須一一注冊。

但是您可以使用另一個庫通過命名約定自動注冊它:

https://www.google.com/amp/s/andrewlock.net/using-scrutor-to-automatically-register-your-services-with-the-asp-net-core-di-container/amp/

暫無
暫無

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

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