Получение экспорта из контейнера MEF только с экземпляром типа - PullRequest
12 голосов
/ 24 июня 2009

У меня есть сценарий, в котором мне нужно получить экспорт из моего экземпляра CompositionContainer, но у меня есть только тип для работы; Я не знаю тип во время компиляции, поэтому я не могу получить экспортированный объект обычным универсальным способом.

Обычно вы делаете это:

_container.GetExportedObject<IMyType>();

Но в моем случае у меня есть это:

Type someType = ... ;
_container.HowDoIGetTheExport(someType);

Есть идеи?

Ответы [ 2 ]

21 голосов
/ 24 июня 2009

Нашел ответ:

var export = _container.GetExports(someType, null, null).FirstOrDefault();
1 голос
/ 24 июня 2009

Создайте вызов динамически, используя Type.MakeGeneric .....

http://geekswithblogs.net/marcel/archive/2007/03/24/109722.aspx

...