如何在MVC应用程序中设置Unity容器

时间:2011-08-31 18:02:47

标签: c# asp.net-mvc unity-container ioc-container

我在ASP.NET MVC3应用程序中使用Unity容器时遇到了麻烦。

我有几个带接口及其实现的项目。所有用于concreete类型绑定的接口都在应用程序启动方法中执行。

我对这个问题有几个问题:

1)如何处理MVC应用程序未正确要求的类型的注册,但是使用它所使用的类(Repository使用ContextManager来检索上下文实例)。如果此类位于mvc app未使用的程序集中,我将不得不添加对它的引用。

2)如何共享配置的容器?我是否应该使用mvc app容器创建的静态类创建单独的程序集?

3)什么样的统一容器使用可能会带来跨线程问题?如何注册单例,以便它们只能在此线程(Web服务器调用)等中使用。

1 个答案:

答案 0 :(得分:2)

  1. 您应该将所有程序集显式引用到ASP.NET MVC应用程序。它是onion architecture中的最外层,可以了解内层。无论如何,所有程序集都必须位于bin文件夹中,因此ASP.NET MVC应用程序将以这种或那种方式了解它们。只需将您的DI框架配置外部化到ASP.NET MVC应用程序中的一个位置即可。
  2. 见1.
  3. 每个线程存储在ASP.NET中可能很危险。 Per HTTP Context更好。