我有一个希望得到满意答案的基本问题,涉及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也需要引用接口项目。尽管这会向我的解决方案添加另一个项目,但这似乎是一种更清晰的做法,这并不让我感到困扰。我还看到有人建议将DAL接口存储在SL中,并让DAL引用SL,但这对我来说似乎不正确。任何见解或建议都将不胜感激。谢谢!
我关心的是,为了使SL接受DAL接口作为参数,它还需要引用DAL项目(其中接口和实现都存在),这似乎违反了DI,因为现在MVC和SL项目都需要引用DAL程序集。
长话短说,将DAL接口移动到自己的项目中是否更有意义,这样SL只需要引用接口项目而不是实现项目?MVC项目显然需要引用接口和实现项目,而DAL也需要引用接口项目。尽管这会向我的解决方案添加另一个项目,但这似乎是一种更清晰的做法,这并不让我感到困扰。我还看到有人建议将DAL接口存储在SL中,并让DAL引用SL,但这对我来说似乎不正确。任何见解或建议都将不胜感激。谢谢!