我試圖圍繞在我的依賴注入應用程序中使用IoC的最佳方式,但是我有一個小問題。IoC和用戶界面
我正在使用WPF應用程序的MVP模式的鬆散實現。實質上,演示者類被實例化,並且視圖和任務(例如EmployeePresenter的IEmployeeView和IEmployeeTask)被注入到演示者中。我想使用一個IoC容器(我嘗試了Unity,儘管我猜這也會發生在其他人如ninject或Structure Map),而不是手動注入這些實例,但是如果創建了演示者(或在一個異步委託調用從IoC容器解決),或一個事件線程(例如,不STA線程),然後創建一個WPF窗口的新實例拋出以下異常:
當前構建操作(建立關鍵 構建密鑰[名稱空間 .Window1,null]) 失敗:調用線程必須爲 STA,因爲許多UI c組件 需要這個。
現在,我知道新的窗口實例等需要STA,但是是否有可能使用IoC容器來執行依賴項注入,即使必須在STA線程上創建UI?
通過觀察這個問題,似乎這個類/類型來解決是在解析時實例,而不是當其註冊...
這是最有可能的原因,IoC容器在WPF中工作正常。 – Jab 2008-11-26 18:40:24