У меня есть ситуация, когда я хочу использовать MEF в шахматном проекте, над которым я работаю.Допустим, у меня есть конструктор класса, как в:
public class MoveManager
{
private Piece _piece;
public MoveManager(Piece piece)
{
_piece = piece;
}
Mode code here...
}
В этом контексте у меня будет несколько классов, которые будут производными от Piece, как, Pawn, Rook и т. Д. Если я добавлю атрибуты экспорта для всехнаследуется от Piece, объект, передаваемый в конструктор, имеет значение null.MEF перебирает все классы, имеющие [Export(typeof(Piece))]
, и если он превышает 1, он принимает значение NULL.Поэтому я не могу использовать MEF таким образом.Я собираюсь использовать Abstact Factory для получения правильной части.Похоже, что часть DI MEF может принять только один класс, который имеет [Export(typeof(some base class))]
.
Может ли кто-нибудь пролить свет на это?