代码之家  ›  专栏  ›  技术社区  ›  Lorenzo B

MEF,将参数传递给模块

  •  2
  • Lorenzo B  · 技术社区  · 15 年前

    我正在学习MEF,我无法解决问题。

    我有一个名为mainmef的主应用程序和一个名为simple module的简单模块。这个由一个动态加载的用户控件组成。

    当mainmef启动时,我可以将对包含在mainmef中的主应用程序的引用传递给模块。

    我怎么修这个?

    1 回复  |  直到 14 年前
        1
  •  6
  •   Community CDub    8 年前

    关于这个已经有很多问题了。 初始化后可以使用属性传递它: How do I populate a MEF plugin with data that is not hard coded into the assembly?

    或使用MEF构造函数参数: MEF Constructor Parameters with Multiple Constructors

    导出如下所示:

    [Export(typeof(ITest))]
    class Test : ITest 
    {
        void Test() 
        {  }
    
        [ImportingConstructor] //<- This is the key bit here
        void Test(object parameter) 
        {  }
    }
    

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

    catalog.ComposeExportedValue( /* parameter here */);
    catalog.ComposeParts(this);