Если вы не можете изменить исходный класс (например, ThirdPartyComponent
), то вы можете выполнить экспорт через свойство другого класса (например, ThirdPartyComponentExporter
):
public class ThirdPartyComponentExporter
{
[Export(typeof(ThirdPartyComponent))]
public ThirdPartyComponent Foo
{
get
{
return new ThirdPartyComponent();
}
}
}
Для визуальных элементов управления вывозможно, придется использовать CreationPolicy.NonShared
для предотвращения повторного использования MEF одного и того же экземпляра в разных местах.