Mef,将参数传递给模块

Lor*_*o B 2 mef silverlight-4.0

我正在研究MEF,但我无法解决问题.

我有一个名为MainMEF的主应用程序,以及一个名为SimpleModule的简单模块.这个包含一个动态加载的UserControl.

当MainMEF启动时,我可以向模块传递对MainMEF中包含的主应用程序的引用.

我怎么能解决这个问题?

Tim*_*Tim 6

关于这个问题已经有很多问题了.您可以在使用属性初始化后传递它:如何使用 未硬编码到程序集中的数据填充MEF插件?

或者使用MEF构造函数参数: 具有多个构造函数的MEF构造函数参数

导出看起来像这样:

[Export(typeof(ITest))]
class Test : ITest 
{
    void Test() 
    {  }

    [ImportingConstructor] //<- This is the key bit here
    void Test(object parameter) 
    {  }
}
Run Code Online (Sandbox Code Playgroud)

然后在编写目录时执行以下操作:

catalog.ComposeExportedValue( /* parameter here */);
catalog.ComposeParts(this);
Run Code Online (Sandbox Code Playgroud)