使用Visual Studio手动管理依赖项

时间:2013-01-27 19:30:18

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

我正在阅读“.Net中的依赖注入”,并希望实现一些提出的想法。为了绝对提前,我想尝试一个'穷人DI'/无DI容器 - 手动管理依赖关系 - 以便在进入DI容器之前更好地理解这些概念。

第2章中说明了一个示例,它演示了一个Composition Root并创建了依赖项(以及构造函数注入)。基本想法与此类似:

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

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

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

我的问题:

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

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

1 个答案:

答案 0 :(得分:0)

  

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

由于你有一个单独的DataAccess.dll,那么是的。

  

我有兴趣设置Visual Studio来为我做这个

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

考虑到你可能不需要,但是在同一个项目中。当您需要单独部署类时,项目应该是部署单元。使用命名空间/目录进行逻辑分离,您将不会遇到此问题。

  

DI容器如何解决我所描述的内容?

你告诉它。在配置时或使用约定时显式。