可以读取和修改主机应用程序对象(MEF)的插件

时间:2011-06-16 13:57:47

标签: c# mef

如何创建可以使用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为空。

1 个答案:

答案 0 :(得分:1)

您需要创建CompositionContainer。容器应该创建插件。它还应该在宿主应用程序中创建具有导入的类(如果可能的话)。如果不是,您可以调用container.SatisfyImports(hostObject)以使对象上的导入满意。