依赖注入和程序集引用

Rya*_*yan 3 c# asp.net-mvc dependency-injection

我有一个我希望是MVC应用程序中依赖注入的基本问题,我一直无法找到满意的答案.我的应用程序包含一个MVC 3项目,一个服务层类库(SL)和一个数据访问类库(DAL).SL和DAL都包含各自的接口和实现.MVC项目引用了SL和DAL项目.MVC项目将创建DAL的实现并将其注入到接受DAL接口的SL构造函数中.

我担心的是为了让SL接受DAL接口作为参数,它还需要对DAL项目的引用(接口碰巧存在但也是实现),这似乎违反了DI,因为现在MVC和SL项目需要引用DAL程序集.

简而言之,将DAL接口移动到自己的项目中是否更有意义,这样SL只需要引用接口项目而不是实现项目?MVC项目显然需要引用接口和实现项目,DAL也需要引用接口项目.这似乎是一种更干净的做事方式,即使它为我的解决方案增加了另一个项目,这并没有给我带来太多麻烦.我也看到了在SL中存储DAL接口的建议,并且有DAL参考SL,但这对我来说似乎不对.任何见解或建议都表示赞赏.谢谢!

Dmi*_* S. 5

看看洋葱建筑:

http://jeffreypalermo.com/blog/the-onion-architecture-part-1/

http://jeffreypalermo.com/blog/the-onion-architecture-part-2/

http://jeffreypalermo.com/blog/the-onion-architecture-part-3/

让UI程序集引用所有服务和业务逻辑程序集是完全正确的.服务层显然应该引用不应该依赖于任何更高级别的基础结构程序集.