2011-10-02 82 views

回答

2

一般來說,它是不被路過的圓形容器一個偉大的想法,因爲你最終使用它作爲多服務定位機制,但你應該想這樣做,你需要手動導出容器,如:

var container = new CompositionContainer(catalog); 
container.ComposeExportedValue(container); 

這將使你導入它:

[Import] 
public CompositionContainer Container { get; set; } 

或者:

[ImportingConstructor] 
public MyClass(CompositionContainer container) { } 
+0

我同意服務位置反模式。我做了很多環視四周沒有找到我的問題的好回答 - 如果我有很多東西我需要導入到視圖模型,我不願意使用[導入](喜歡構造函數注入),怎麼可以我在沒有大量構造函數的情況下去解決這個問題(這個問題被繼承放大,其中子類也必須提供巨大的構造函數)。任何好主意? –