如何实现Unity 3 + N-Tier架构?

时间:2013-09-06 01:09:44

标签: asp.net-mvc-4 unity-container n-tier-architecture

我想了解Microsoft.practices.Unity。

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

  • webproject
  • business classlibrary项目作为我的逻辑层
  • data classlibrary项目作为我的数据访问层

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

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

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

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

我想看一个简单的例子,其中包含一个n层解决方案,其中包含Unity的完整DI实现。

1 个答案:

答案 0 :(得分:0)

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

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

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

对于你的其他问题,Tuzo的link可能会给你足够的信息。