MEF: GetExports <T, TMD> не работает, когда ImportingConstructor добавлен в деталь - PullRequest
0 голосов
/ 17 сентября 2018

Я новичок в работе с MEF и застрял с проблемой. Я попробовал поискать в Google, но никто не сталкивался с проблемой, похожей на мою. У меня есть контейнер, имеющий 3 экспорта для интерфейса. Каждый из них также связан с метаданными. Когда я запрашиваю экспорт с помощью Container.GetExports 3, возвращаются экспорты, и я могу просмотреть метаданные. Затем я добавил параметризованный конструктор с атрибутом ImportingConstructor. Container.GetExports теперь не возвращает ранее возвращенный экспорт. Ниже приведены команды в разных классах, но в порядке выполнения.

[ImportingConstructor()]
public AddCommand([Import("Operand1")]int pintOperand1,
                          [Import("Operand2")]int pintOperand2, 
                          [Import("Operator")]char pcharOperator) : base(pintOperand1, pintOperand2, pcharOperator){}

Container.ComposeParts(this);

AvailableCommands = Container.GetExports<ICalculatorCommand, ICalculatorCommandMetaData>().Select((x) => x.Metadata).ToList();
...