C# N层-依赖注入-网络核心
我正在ASP.NET核心中构建一个解决方案体系结构 我在C# N层-依赖注入-网络核心,c#,asp.net-core,dependency-injection,architecture,n-layer,C#,Asp.net Core,Dependency Injection,Architecture,N Layer,我正在ASP.NET核心中构建一个解决方案体系结构 我在ConfigureServices()中引用web项目中的存储库来声明依赖项注入,这样可以吗 我认为理想情况是只引用服务项目,因为控制器只应该使用服务,而不应该使用存储库 我有以下项目: Web应用程序(ASP.NET核心)-引用所有项目 public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.Add
ConfigureServices()
中引用web项目中的存储库来声明依赖项注入,这样可以吗
我认为理想情况是只引用服务项目,因为控制器只应该使用服务,而不应该使用存储库
我有以下项目:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddTransient<IEventsService, EventsService>();
services.AddTransient<IEventsRepository, EventsSqlRepository>();
}
public class EventsController : Controller
{
private readonly IEventsService _eventsService;
public EventsController(IEventsService eventsService)
{
_eventsService = eventsService;
}
}
- IEventsRepository
- 使用E.F.访问BD
public class EventsSqlRepository : BaseRepository, IEventsRepository { }
- 从BD E.F映射
非常感谢 您的解决方案看起来不错。注册应用程序依赖项的部分称为组合根,它是应用程序中所有依赖项都应该注册的唯一位置。即使它物理上位于应用程序的web项目部分,但从逻辑上讲,它是应用程序的独立部分。您可以在此处阅读更多信息:
public class EventsSqlRepository : BaseRepository, IEventsRepository
{
}