2

我們在ASP.Net解決方案中使用Microsofts Unity IOC容器。在ASP.net中使用Unity IOC容器解決方案

在其中一個頂層我們使用RegisterInstance方法。然後我們用Resolve方法將其降低。

在查看另一個問題時,我們看到ASP.Net具有線程敏捷性,即請求可以跳轉線程。

所以問題是如果我們在一個線程上註冊一個實例,並且在我們解析實例之前請求跳轉線程,我們會找回正確的實例嗎?

+0

http://msdn.microsoft.com/en-us/library/microsoft.practices.unity.lifetimemanager – Yoztastic

回答

5
  1. 如果你解決你在同一個容器上的類型,你已經註冊了它(或它的孩子),你會得到正確的實例。

  2. 據我所知,沒有必要在每個請求的容器中註冊類型,這通常在應用程序啓動的某個地方完成。

3

基於this

[...] 解決,ResolveAll和積累都是線程安全的。看起來像 我們錯過了它的文檔。

容器上的其他方法都不是線程安全的,因此如果您要配置容器,則需要執行鎖定。 另外,如果你有一個線程配置和另一個線程 解決,將會有線程問題。

AFAIK,您的方法是正確的,您不應該擔心在ASP.NET應用程序中獲取不正確的實例。

相關問題