How to avoid having BAL dependent on DAL due to DI Container binding requirements?

淺唱寂寞╮ 提交于 2019-12-07 18:19:48

问题


My application consists of three projects. Core, DAL and BAL.

Core contains Domain objects (Customer, Order, Product). It also contains basic IRepository interface IRepository<T>.

DAL contains EntityFramework specific stuff. It also contain Concrete Repositories ( CustomerRepository, OrderRepository, ProductRepository). I added these concrete repositories here as they depend on DbContext (which is EF Specific)

Now my BAL should only have dependency on Core and no dependency on DAL. I have added a dependency on NInject in this project. However, I still need to tell Ninject that it should resolve IRepository<Customer> as CustomerRepository and that is forcing me to add DAL dependency here. Is there anyway of avoid adding dependency on DAL in my BAL Project?


回答1:


You would normally do your container registration at your composition root, which would be typically at bootstrap and that code would be contained in your web or desktop assembly, not your assembly that contains your business/domain objects.



来源:https://stackoverflow.com/questions/12538693/how-to-avoid-having-bal-dependent-on-dal-due-to-di-container-binding-requirement

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!