Конфигурирование плагина MEF

372
24 января 2017, 21:11

Подскажите, может ли хост при загрузке плагина передать в него какую-то информацию или при создании используется только конструктор по умолчанию?

Если нельзя, то какие есть альтернативы?

Answer 1

Можно пометить нужный конструктор атрибутом ImportingConstructor. Только контейнер должен содержать и аргумент и сам плагин.

Например:

[Export(typeof(ILogger))]
class Logger : ILogger {}
[Export(typeof(IPlugin))]
class Plugin : IPlugin
{
    [ImportingConstructor]
    public Plugin(ILogger logger)
    {
    }
}

Каталог:

var catalog = new TypeCatalog(typeof(Plugin), typeof(Logger));
READ ALSO
Как стиль ContextMenuMy установить к MenuItem из кода?

Как стиль ContextMenuMy установить к MenuItem из кода?

Как стиль ContextMenuMy установить к MenuItem из кода?

296
Многопоточное программирование c# [требует правки]

Многопоточное программирование c# [требует правки]

задача такая: запускается поток в консоли он ждет ввода данных от пользователяКак пользователь вводит данные поток закрывается

267
Перегрузка оператора < в c#

Перегрузка оператора < в c#

У меня есть такой код:

341
user credentials cannot be used for local connections wmi c#

user credentials cannot be used for local connections wmi c#

Не могу понять в чем проблемаЯ доменный пользователь(не локальный), но задача следующая

407