【问题标题】:Manually managed dependencies with Visual Studio使用 Visual Studio 手动管理依赖项
【发布时间】:2013-01-27 19:30:17
【问题描述】:

我正在阅读“.Net 中的依赖注入”,并希望实现所提出的一些想法。坦率地说,我想尝试一个“Poor Mans DI”/无 DI 容器——手动管理依赖项——以便在进入 DI 容器之前更好地理解这些概念。

第 2 章中有一个示例演示了组合根和创建依赖项(和构造函数注入)。基本思路是这样的:

Web Project (has CompositionRoot.cs) --> Domain Project <-- DataAccess Project

Composition 根创建一个 DataAccess 实例并将其传递给 Domain 项目类的构造函数——所有依赖项都从 web.config 中读取。

我完全同意上述想法,并同意 Web 项目不应引用 DataAccess 项目。我在这一点上的理解是,Web 项目确实需要对 DataAccess 项目的引用,以便通过反射创建实例。

我的问题:

  1. 我的理解是,我需要将 DataAccess.dll 复制到 Web 项目的 Bin 文件夹中才能构建所有内容。这似乎非常费力,所以我有兴趣设置 Visual Studio 为我做这件事吗? This 是我目前发现的全部。

  2. DI 容器如何解决我所描述的问题? ** 我还没有查看任何容器,所以我不知道它们是否需要对依赖项项目的硬引用。

【问题讨论】:

    标签: .net visual-studio-2010 dependency-injection


    【解决方案1】:

    我的理解是,我需要将 DataAccess.dll 复制到 Web 项目的 Bin 文件夹才能构建所有内容。

    既然你有一个单独的DataAccess.dll,那么是的。

    我有兴趣设置 Visual Studio 为我执行此操作

    您可以使用预构建事件来执行此操作(在项目属性页面的“构建”选项卡中)。

    请考虑,如果您仍然在进行 DI 但在同一项目中,则可能不需要这样做。当您在物理上需要单独部署类时,项目应该是部署单元。使用命名空间/目录进行逻辑分离,你不会有这个问题。

    DI Container 如何解决我所描述的问题?

    你说吧。要么在配置时明确说明,要么使用约定。

    【讨论】:

      猜你喜欢
      • 2014-08-01
      • 1970-01-01
      • 2017-03-16
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      相关资源
      最近更新 更多