我们在ASP.Net解决方案中使用Microsofts Unity IOC容器。
在其中一个顶层中,我们使用RegisterInstance方法。然后我们使用Resolve方法将其降低。
在查看另一个问题时,我们看到ASP.Net具有线程敏捷性,即请求可以跳转线程。
所以问题是如果我们在一个线程上注册一个实例,并且在我们解析实例之前请求跳转线程,我们会回到正确的实例吗?
答案 0 :(得分:5)
如果你在同一个容器上解析了你的类型(或者它的孩子),那么你将获得正确的实例。
据我所知,没有必要在每个请求中注册容器中的类型,这通常是在应用程序启动的某个地方完成的。
答案 1 :(得分:3)
基于this
[...] Resolve,ResolveAll和BuildUp都是线程安全的。好像 我们在文档中错过了它。
容器上的其他任何方法都不是线程安全的,所以如果 你要配置容器,你需要做锁定。 此外,如果您有一个线程配置和另一个线程 解决,会有线程问题。
AFAIK,您的方法是正确的,您不必担心在ASP.NET应用程序中获取不正确的实例。