我是DI容器的新手并且已经做了一些阅读,我想知道你们是否可以帮助我完成我的第一个样本项目。
我将MVC5应用程序分成n
层模块。我让我的演示模块通过IDataAdapter
向控制器注入defaultcontrollerfactory.
然后通过构造函数注入将dataadapter
传递到服务类,该服务类通过{{1}与数据访问层对话}}
我的问题是,IDataAdapter.
接口类应该位于何处,显然实现此接口的具体类需要位于数据访问层中。我可以将界面留在DAL中,但是我需要在我的视图和dal之间进行硬参考,这似乎不对。
所以我创建了一个单独的项目库来保存我的容器逻辑和数据适配器,但现在我遇到了一个循环依赖,我的IDataAdapter
需要实现DataAdapter
接口,但我的统一注册文件不知道IDataAdapter
具体类是什么,因为它不能引用DAL。
答案 0 :(得分:0)
使用依赖注入时,最好将所有接口放在一个单独的程序集中,这样就可以避免任何类型的循环依赖。
推荐的解决方案结构的高级图: