2011-04-18 66 views
2

做GetComponentParts雖然做GetComponentParts我收到以下錯誤,具體它reporoduces而我在不斷循環做進口,而在我的WCF應用程序處理多個消息錯誤而MEF

的組合物生產的單一組合物錯誤。根源在下面提供。查看CompositionException.Errors屬性以獲取更多詳細信息。

1)組成失敗,因爲它沒有在'100'迭代內完成。這很可能是由標有非共享創建策略的部分的依賴關係圖中的循環引起的。

我還找不到CompositionException.Errors找到根本原因。

請建議什麼解決辦法可能的,因爲我沒有得到在網上暗示任何一個單獨的線程...

非常感謝

+0

錯誤很明顯,你可能在MEF實例化的部件之間有循環依賴關係,記下你的組件的結構並且你會發現它(或者在這裏發佈你的代碼) – tchrikch 2011-04-18 07:42:45

+0

它不應該是case,因爲每次新的獨立對象被創建,其工作大部分時間 – 2011-04-18 08:35:10

回答

1

因爲這是工作的大部分時間,它可能是一個線程問題正在破壞MEF的內部狀態並導致此錯誤。

使用時從多個線程CompositionContainer中,你需要設置爲true的isThreadSafe參數創建它,避免調用其修改有什麼可用的方法 - 比如ComposeComposeParts,或AddExportedValue

可以安全調用的方法是GetExport和SatisfyImports方法。

+0

我想嘗試你的建議 – 2011-04-18 18:58:17