Mef, передача параметров в модуль - PullRequest
2 голосов
/ 03 июня 2010

Я изучаю MEF и не могу решить проблему.

У меня есть основное приложение, называемое MainMEF, и простой модуль, называемый SimpleModule. Этот состоит из одного UserControl, который загружается динамически.

Когда MainMEF запустится, я смогу передать модулю ссылку на основное приложение, содержащееся в MainMEF.

Как я мог это исправить?

1 Ответ

6 голосов
/ 03 июня 2010

Много вопросов по этому поводу уже. Вы можете передать его после инициализации, используя свойство: Как заполнить плагин MEF данными, которые не жестко запрограммированы в сборке?

Или используйте параметры конструктора MEF:

Параметры конструктора MEF с несколькими конструкторами

Экспорт выглядит примерно так:

[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);
...