Lorenzo B
Lorenzo B

Reputation: 33428

Mef, passing parameters to a module

I'm studying MEF and I'm not able to resolve a problem.

I have a main application, called MainMEF, and a simple module, called SimpleModule. This one consists of a single UserControl which is loaded dynamically.

When MainMEF starts up, I would be able to pass to the module a reference to main application contained into MainMEF.

How could I fix this?

Upvotes: 2

Views: 1800

Answers (1)

Tim
Tim

Reputation: 8186

Lots of questions regarding this already. You could pass it after initialisation using a property: How do I populate a MEF plugin with data that is not hard coded into the assembly?

Or use MEF constructor parameters: MEF Constructor Parameters with Multiple Constructors

The export looks something like this:

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

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

Then when composing your catalog do this:

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

Upvotes: 6

Related Questions