gpt4 book ai didi

c# - 由于 DI 容器绑定(bind)要求,如何避免 BAL 依赖于 DAL?

转载 作者:行者123 更新时间:2023-11-30 15:02:33 24 4
gpt4 key购买 nike

我的申请包含三个项目。核心、DAL 和 BAL。

核心包含域对象(客户、订单、产品)。它还包含基本的 IRepository 接口(interface) IRepository <T>.

DAL 包含 EntityFramework 特定的东西。它还包含具体存储库(CustomerRepository、OrderRepository、ProductRepository)。我在这里添加了这些具体的存储库,因为它们依赖于 DbContext(这是 EF 特定的)

现在我的 BAL 应该只依赖于 Core,而不依赖于 DAL。我在这个项目中添加了对 NInject 的依赖。但是,我仍然需要告诉 Ninject 它应该解析 IRepository <Customer>作为 CustomerRepository,这迫使我在此处添加 DAL 依赖项。有没有办法避免在我的 BAL 项目中添加对 DAL 的依赖?

最佳答案

您通常会在 composition root 处进行容器注册,这通常是在 Bootstrap 中,并且该代码将包含在您的 Web 或桌面程序集中,而不是包含您的业务/域对象的程序集中。

关于c# - 由于 DI 容器绑定(bind)要求,如何避免 BAL 依赖于 DAL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12538693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com