0

我正在尝试了解 Microsoft.practices.Unity。

所以,我有这个解决方案:

  • 网络项目
  • 业务类库项目作为我的逻辑层
  • 数据类库项目作为我的数据访问层

我想使用 Unity 将 Web 层与逻辑分离,并将逻辑层与数据分离,使用 DI。

我在我的 web 项目中创建了一个 unity.config 文件,因为我想从配置文件中控制注册,而不是在二进制代码中。这对我来说没问题。我正在使用 Unity.MVC4。

但是,有了这个,我只解决了从 web 到业务层的依​​赖注入。我怎样才能为业务到数据层做同样的事情?

我已经看过一些 web 示例,但我仍然感到困惑,因为没有示例向我展示了通过 web 层到数据层的过程,逐步了解如何实现 Unity DI。

我想看一个简单的例子,一个 n 层解决方案,使用 Unity 实现完全 DI。

4

1 回答 1

0

防止使用配置文件注册依赖项。这是脆弱且容易出错的,你只能做你可以在代码中做的事情的一个子集。如果您这样做是因为您想阻止依赖项引用,请注意,通过使用配置文件,相同的引用仍然适用,但现在它是隐式的,并且没有编译时检查可以帮助您。

这并不意味着您永远不应该使用配置文件,但您应该只使用它来配置在部署期间或之后可能实际更改的内容。在此期间大多数事情不应该更改,因为大多数更改必须由开发人员更改,要么通过启动应用程序手动更改,要么使用单元测试以自动化方式进行更改。

出于与易碎相同的原因,它们都不会将类名放在配置文件中。使用配置开关通常要好得多,因为这允许您将类名移动到代码中(使用 switch case 语句或 if 语句来根据配置设置更改配置)并启用编译时检查。

对于您的其余问题,Tuzo 的链接可能会为您提供足够的信息。

于 2013-09-06T07:09:50.800 回答