C# NET核心,如何在依赖项注入中配置通用服务?

C# NET核心,如何在依赖项注入中配置通用服务?,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,我确实在startup.cs上向startup方法添加了一些服务 此服务是特定类型的通用服务。这是我的启动代码: services.AddTransient<BaseEntityService<Subscription>>(); services.AddTransient<BaseEntityService<Customer>>(); services.AddTransient<BaseEntityService<Asset>&g

我确实在startup.cs上向startup方法添加了一些服务

此服务是特定类型的通用服务。这是我的启动代码:

services.AddTransient<BaseEntityService<Subscription>>();
services.AddTransient<BaseEntityService<Customer>>();
services.AddTransient<BaseEntityService<Asset>>();
services.AddTransient<BaseEntityService<Product>>();
// ...
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
// ...
O我的控制器我需要以下服务:

public MyAssetController(BaseEntityService<Asset> service){ //...
公共MyAssetController(BaseEntityService服务){/。。。
有没有办法在启动时不对每个类类型重复通用服务?只需添加一个通用类型?如下所示:

services.AddTransient<BaseEntityService>(); // Doesn't works..
services.AddTransient();//不起作用。。
试试这个

services.AddTransient(typeof(BaseEntityService<>));
services.AddTransient(typeof(BaseEntityService));
这里提到了类似的情况:


编辑:删除了第一个参数,因为类型是相同的。

我只需将泛型类型参数从类中删除,并将其放在方法中,那么您就不需要执行此操作。请不要发布其他SO答案。请将其作为副本关闭。我如何做?抱歉,请单击问题底部的“关闭”链接。是屏幕截图。很抱歉,我需要3000个代表才能使用该选项。每次请求时都会创建临时类。作用域为每个请求一次。Singleton是生存期(但在第一次请求时创建)信息如下: