有没有更好的方法来挂钩依赖? 这依赖于单例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);
}
}
答案 0 :(得分:0)
我在WPF应用程序中处于类似情况,我希望MainWindow实例导入MEF导出。由于MEF不会创建MainWindow实例,因此除非您告诉它,否则它将不满足导入。
如果您不希望将实例注册为重构,那么您的工作方式将起作用。如果您确实需要重新组合,则应致电ComposeParts。
重新组合将更新您班级中的导入,如果他们发生变化。