我正在阅读“.Net 中的依赖注入”,并希望实现所提出的一些想法。坦率地说,我想尝试一个“Poor Mans DI”/无 DI 容器——手动管理依赖项——以便在进入 DI 容器之前更好地理解这些概念。
第 2 章中有一个示例演示了组合根和创建依赖项(和构造函数注入)。基本思想与此类似:
Web Project (has CompositionRoot.cs) --> Domain Project <-- DataAccess Project
组合根创建一个 DataAccess 实例并将其传递给域项目类的构造函数——所有依赖项都从 web.config 中读取。
我完全同意上述想法,并同意 Web 项目不应引用 DataAccess 项目。我在这一点上的理解是,Web 项目确实需要对 DataAccess 项目的引用才能通过反射创建实例。
我的问题:
我的理解是,我需要将 DataAccess.dll 复制到 Web 项目的 Bin 文件夹中才能构建所有内容。这似乎非常费力,所以我有兴趣设置 Visual Studio 为我做这件事吗?到目前为止,这就是我所发现的。
DI Container 如何解决我所描述的问题?** 我还没有查看任何容器,所以我不知道它们是否需要对依赖项项目的硬引用。