2011-04-26 39 views
1

有沒有更好的方法來掛鉤依賴? 這依賴於單例App.Current並暴露了一個公開_container.SatisfyImports的函數。通過SatisfyImports找到可能的解決方案 - 有更好的方法嗎?

是否有更多MEF-tastic的做事方式?

這裏是我的主應用程序類

public partial class App : Application 
{ 
    private CompositionContainer _container;  

    .... 

    public void SatisfyImportsOnce(Object satifyMe) 
    { 
     _container.SatisfyImportsOnce(satisfyMe);  
    } 
} 

下面是ComposeParts很久之後實例化的測試類被稱爲的一部分......

public class TestClass 
{ 
    public TestClass() 
    { 
     Console.WriteLine("Created a TestClass"); 

     ((Microsoft.Samples.XFileExplorer.App)App.Current).SatisfyImportsOnce(this); 
    } 
} 

回答

0

我在一個類似的情況在WPF應用程序我想讓MainWindow實例導入MEF導出。由於MEF不創建MainWindow實例,除非您告訴它,否則它不會滿足導入。

如果您不希望您的實例註冊爲重新構建,那麼您正在執行此操作的方式將起作用。如果您確實需要重新組合,您應該致電ComposeParts

重組將更新您的班級中的進口,當他們改變時。

相關問題