Mef, передача параметров модулю

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

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

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

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


person Lorenzo B    schedule 03.06.2010    source источник


Ответы (1)


Уже много вопросов по этому поводу. Вы можете передать его после инициализации, используя свойство: Как мне заполнить подключаемый модуль 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);
person Tim    schedule 03.06.2010
comment
Спасибо за ваш ответ. Очень полезно. Не могли бы вы объяснить мне эти строки с большим количеством кода? Учитывать каталог. ### catalog.ComposeExportedValue( /* здесь параметр */); catalog.ComposeParts(этот); ### К какому типу относится? - person Lorenzo B; 04.06.2010