2015-12-15 71 views
0

IM使用統一容器在我的項目不同步塊打來電話,即時通訊試圖容器註冊它的自我是這樣的:團結集裝箱 - 對象同步方法從代碼

UnityContainer.RegisterInstance(UnityContainer); 

但即時得到以下異常:

Object synchronization method was called from an unsynchronized block of code. 

我試過尋找異常,但是我發現所有的東西都和互斥有關。

+0

哪一行引發異常? –

+0

UnityContainer.RegisterInsance(UnityContaier) – Pachu

回答

1

容器已經自行註冊(如IUnityContainer),所以您不必註冊它。考慮以下類:

public class MyClass 
{ 
    private readonly IUnityContainer m_UnityContainer; 

    public MyClass(IUnityContainer unity_container) 
    { 
     m_UnityContainer = unity_container; 
    } 
} 

現在,如果你簡單地解析這個類如下,它將有容器注入它。

var obj = container.Resolve<MyClass>(); 

請注意,有你的類依賴於容器意味着你要使用的容器來定位服務,這is considered an anti-pattern

+0

謝謝,調試後我發現你是我不需要註冊它,那真棒感謝的人。 – Pachu

+1

雖然他不需要將容器註冊到自己,但這不是他的問題的答案。這是一個很好的答案,任何尋求標題問題幫助的人都沒有用。 –

相關問題