依赖注入我的界面在哪里?

时间:2014-03-08 20:55:01

标签: c# dependency-injection unity-container

我是DI容器的新手并且已经做了一些阅读,我想知道你们是否可以帮助我完成我的第一个样本项目。

我将MVC5应用程序分成n层模块。我让我的演示模块通过IDataAdapter向控制器注入defaultcontrollerfactory.然后通过构造函数注入将dataadapter传递到服务类,该服务类通过{{1}与数据访问层对话}}

我的问题是,IDataAdapter.接口类应该位于何处,显然实现此接口的具体类需要位于数据访问层中。我可以将界面留在DAL中,但是我需要在我的视图和dal之间进行硬参考,这似乎不对。

所以我创建了一个单独的项目库来保存我的容器逻辑和数据适配器,但现在我遇到了一个循环依赖,我的IDataAdapter需要实现DataAdapter接口,但我的统一注册文件不知道IDataAdapter具体类是什么,因为它不能引用DAL。

1 个答案:

答案 0 :(得分:0)

使用依赖注入时,最好将所有接口放在一个单独的程序集中,这样就可以避免任何类型的循环依赖。

推荐的解决方案结构的高级图:

Click here to see high level diagram of recommended solution structure