2014-09-10 20 views
2

我正在使用MVC5和Unity。關於線程安全單例,我有點困惑。多個用戶是否共享同一個單獨對象?我的理解是,將爲每個請求創建一個單例對象,兩個用戶將分別擁有自己的單例。它是否正確?統一單身多重請求訪問ASP.Net MVC 5

[更新]

讓說我有一個Singleton類與property實例來獲得實例。撥打Instance時,同時訪問網站的兩個用戶是否會訪問同一個單身人士對象?對象的範圍是什麼?該範圍是由多個用戶共享還是每個用戶都有自己的範圍?實例會爲兩個用戶返回相同的對象嗎?

回答

3

這取決於您使用的確切生命期管理器。如果「singleton」是指容器控制的生命期管理器,那麼該實例將由所有用戶共享,並且不會在請求的一生中創建。

另一方面,每個http上下文生存期管理器完全按照您的期望執行操作。

雖然它的名字中沒有「singleton」。

http://msdn.microsoft.com/en-us/library/ff647854.aspx

http://msdn.microsoft.com/en-us/library/microsoft.practices.unity.perrequestlifetimemanager(v=pandp.30).aspx

+0

請參閱更新。 – d0001 2014-09-10 18:58:48

+0

你還沒有說這與Unity有什麼關係。如果不是,單身人士是一個單身人士,**在所有用戶的所有請求**之間共享。 – 2014-09-10 19:04:50