如何创建可以使用MEF读取和修改主机应用程序对象的插件? 例如,宿主应用程序具有TextBox对象。我需要创建插件,可以从TextBox读取文本并对其进行修改。
在这个例子中,我尝试访问字符串:
在主机应用程序中,我写的是:
string _str_test;
[Export("str_test")]
public string str_test
{
get { return _str_test; }
set { _str_test = value; }
}
在插件中我写的是:
string _str_test;
[Import("str_test")]
public string str_test
{
get { return _str_test; }
set { _str_test = value; }
}
但str_test为空。
答案 0 :(得分:1)
您需要创建CompositionContainer
。容器应该创建插件。它还应该在宿主应用程序中创建具有导入的类(如果可能的话)。如果不是,您可以调用container.SatisfyImports(hostObject)
以使对象上的导入满意。