Свойства импорта MEF null в классе, активированном во время выполнения - PullRequest
0 голосов
/ 16 мая 2018

У меня есть фабрика, которая возвращает экземпляр класса (Object Factory)

var object = Activator.CreateInstance(type) as IObjectBase; 
return object;

Тогда в моем IObjectBase все мои значения импорта равны нулю, когда я пытаюсь что-то сделать внутри моего контроллера

[Import] public IObjectFactory ObjectFactory {get; set;}

var getNewObject = ObjectFactory.GetObject(); 
getNewObject.DoSomething();

Вот в чем проблема, все службы импорта здесь нулевые

[Export(typeof(IObjectBase))]
[PartCreationPolicy(CreationPolicy.NonShared)]
public class ObjectBase : IObjectBase
{
    [Import] public IService SomeService {get; set;}
}

1 Ответ

0 голосов
/ 17 мая 2018

Это показалось интересным, поскольку Activator.CreateInstance создает экземпляр класса во время выполнения (поправьте меня, если я ошибаюсь), следовательно, MEF уже не может построить импорт здесь.

Вместо Activator.CreateInstance я использовал ServiceLocator.GetInstance (IObjectBase)

...