找到满足进口需求的可能解决方案 - 有更好的方法吗?

时间:2011-04-26 03:50:11

标签: mef

有没有更好的方法来挂钩依赖? 这依赖于单例App.Current并公开一个公开_container.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);
    }
}

1 个答案:

答案 0 :(得分:0)

我在WPF应用程序中处于类似情况,我希望MainWindow实例导入MEF导出。由于MEF不会创建MainWindow实例,因此除非您告诉它,否则它将不满足导入。

如果您不希望将实例注册为重构,那么您的工作方式将起作用。如果您确实需要重新组合,则应致电ComposeParts

重新组合将更新您班级中的导入,如果他们发生变化。