Je suis dans une situation où je veux utiliser MEF dans un projet d'échecs sur lequel je travaille. Disons que j'ai un constructeur de classe comme dans :
public class MoveManager
{
private Piece _piece;
public MoveManager(Piece piece)
{
_piece = piece;
}
Mode code here...
}
Dans ce contexte, j'aurais plusieurs classes qui dériveraient de Piece, comme Pawn, Rook, etc. Si je mets des attributs d'exportation sur toutes les classes qui dérivent de Piece, l'objet passé dans le constructeur est nul. Le MEF passe en revue toutes les classes qui ont l'attribut [Export(typeof(Piece))]
et s'il dépasse 1, il passe en null. Je ne peux donc pas utiliser MEF de cette manière. Je vais utiliser une Abstact Factory pour obtenir la pièce correcte. Il semble que la partie DI du MEF ne peut prendre qu'une seule classe qui a le code [Export(typeof(some base class))]
.
Quelqu'un peut-il m'éclairer à ce sujet ?