在.NET Core中注入通用接口
在.NET Core中注入通用接口
我想要将这个接口注入到我的控制器中:
public interface IDatabaseService{ IEnumerable GetList(); ... }
我想要使用泛型,因为在我的WebApi项目中,我有像ProjectController、TaskController等控制器,并且我想要为每种类型使用泛型接口(例如IDatabaseService
注入到控制器中的类将如下所示:
public class ProjectService : IDatabaseService{ private readonly DbContext context; public ProjectService(DbContext context) { this.context = context; } public IEnumerable GetList() { } ... }
但是当我尝试在我的Startup.cs中注入时:
services.AddScoped>();
我需要传递T类型。
我的问题是,如何使注入成为泛型,并如何正确地在控制器中注入它?例如:
public class ProjectController : ControllerBase { private readonly ProjectService projectService; public ProjectController(IDatabaseServiceprojectService) { this.projectService = projectService; } }
这样会起作用吗?创建一个泛型接口以注入到控制器中是否是一个好的做法?如果不是,如何更好地做到这一点?