У меня возникла странная проблема, когда объект может быть импортирован в класс просто отлично. Если я создаю экземпляр другого класса из первого класса, попробуйте импортировать тот же объект в дочерний класс, импорт всегда терпит неудачу!Объект импорта MEF в дочернем классе NULL
Первый класс:
public class Foo {
[Import]
private SomeExportedType foobar;
public Foo() {
foobar.Test(); // Works just fine
Bar bar = new Bar();
bar.Test();
}
}
Второй класс:
public class Bar {
[Import]
private SomeExportedType foobar;
public void Test() {
foobar.Test(); // This fails because foobar is NULL
}
}
Все это псевдо-код, или, конечно, но он правильно отражает то, как построен мой код. Почему происходит сбой импорта в дочернем классе?
Как создается экземпляр класса «Foo»? Импорт не выполняется, если вы просто обновляете класс, используя его конструктор ... часть причины, по которой я ненавижу инъекцию свойств на самом деле ... не точно объявляет ее зависимости. – BenjaminPaul
Как упоминалось в моем комментарии к вашему ответу, «Foo» создается MEF. – GTHvidsten