【发布时间】:2018-09-30 20:01:33
【问题描述】:
我正在 ASP.NET Core 中构建解决方案架构。
我参考了 web 项目中的存储库,用于在 ConfigureServices() 中声明依赖注入,你可以吗?
我认为理想的情况是只引用服务项目,因为控制器应该只使用服务而不是存储库。
我有这些项目:
-
Web 应用 (ASP.NET Core) - 引用所有项目。
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; } } -
业务(类库 - .NET 标准)
Folder IServices IEventsService Folder Services public class EventsService : IEventsService { private readonly IEventsRepository _eventsRepository; public EventsService(IEventsRepository eventsRepository) { _eventsRepository = eventsRepository; } } -
IRepository(类库 - .NET 标准)
- IEventsRepository
-
存储库(类库 - .NET 标准)
-
使用 E.F. 访问 BD
public class EventsSqlRepository : BaseRepository, IEventsRepository { }
-
Utils(类库 - .NET Standard)
-
实体(类库 - .NET Standard)
- 从 BD E.F 映射
非常感谢!
【问题讨论】:
-
你知道如何适应它吗?我正在研究类似的架构。
标签: c# asp.net-core dependency-injection architecture n-layer