【问题标题】:Using Unity IOC Container in ASP.net solution在 ASP.net 解决方案中使用 Unity IOC Container
【发布时间】:2012-08-29 11:20:19
【问题描述】:

我们在 ASP.Net 解决方案中使用 Microsoft 的 Unity IOC 容器。

在顶层之一中,我们使用 RegisterInstance 方法。然后我们用 Resolve 方法把它放回更低的位置。

在查看另一个问题时,我们看到 ASP.Net 具有线程敏捷性,即请求可以跳转线程。

所以问题是如果我们在一个线程上注册一个实例,并且请求在我们解析实例之前跳转线程,我们会取回正确的实例吗?

【问题讨论】:

标签: c# asp.net multithreading inversion-of-control unity-container


【解决方案1】:
  1. 如果您在注册它的同一个容器(或其子容器)上解析您的类型,您将获得正确的实例。

  2. 据我所知,没有必要在每次请求时都在容器中注册类型,这通常在应用程序启动时完成。

【讨论】:

    【解决方案2】:

    基于this

    [...] Resolve、ResolveAll 和 BuildUp 都是线程安全的。好像 我们在文档中错过了它。

    容器上的其他方法都不是线程安全的,所以如果 您将要配置容器,您需要进行锁定。 此外,如果您有一个线程配置和另一个线程 解决了,会有线程问题。

    AFAIK,您的方法是正确的,您不必担心在 ASP.NET 应用程序中获得不正确的实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 2011-04-27
      • 2016-12-29
      相关资源
      最近更新 更多