2

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

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

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

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

4

2 回答 2

5
  1. 如果您在已注册的同一容器(或其子容器)上解析您的类型,您将获得正确的实例。

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

于 2012-08-29T11:35:21.883 回答
3

基于

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

容器上的其他方法都不是线程安全的,因此如果要配置容器,则需要进行锁定。此外,如果您有一个线程配置和另一个线程解析,则会出现线程问题。

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

于 2012-08-29T11:41:47.037 回答