gpt4 book ai didi

c# - 依赖注入(inject)和程序集引用

转载 作者:行者123 更新时间:2023-11-30 13:48:33 24 4
gpt4 key购买 nike

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

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

长话短说,将 DAL 接口(interface)移动到它自己的项目中以便 SL 只需要引用接口(interface)项目而不是实现项目是否更有意义? MVC 项目显然需要引用接口(interface)和实现项目,DAL 也需要引用接口(interface)项目。这似乎是一种更简洁的做事方式,尽管它在我的解决方案中添加了另一个项目,但这并没有那么困扰我。我还看到了将 DAL 接口(interface)存储在 SL 中并拥有 DAL 引用 SL 的建议,但这对我来说似乎不正确。任何见解或建议表示赞赏。谢谢!

最佳答案

看看洋葱架构:

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 程序集引用所有服务和业务逻辑程序集是非常好的。服务层显然应该引用不应依赖于任何更高级别的基础设施组件。

关于c# - 依赖注入(inject)和程序集引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com