2010-03-12 3 views
1

Je viens d'utiliser StructureMap il y a quelques jours. J'utilise StructureMap pour collecter toutes les classes de validateurs comme le code suivant.Comment obtenir tous les types génériques possibles dans StructureMap?

public class BaseClassA {} 

public class ClassB : BaseClassA {} 

public class ClassC : BaseClassB {} 

public BaseClassAValidator : IValidator<BaseClassA>() {} 

En StructureMap, je n'enregistrer IValidator<BaseClassA> interface pour BaseClassAValidator classe. Mais je veux obtenir le même résultat lorsque j'appelle IValidator<ClassB> ou IValidator<ClassC> cela signifie que StructureMap doit renvoyer IValidator<T> où T est la classe demandée ou la classe parente de la classe demandée.

Est-ce possible? Ou j'ai besoin de l'appeler manuellement.

Répondre

0

De la réponse à How to use a convention for IRepository<T> with StructureMap mapping

var c = new Container(x => 
{ 
    x.Scan(scan => 
    { 
     // there are other options to expand which assemblies to scan for types 
     scan.TheCallingAssembly(); 
     scan.ConnectImplementationsToTypesClosing(typeof (IValidator<>)); 
    }); 
}); 

Maintenant, si vous demandez IValidator<ClassC>, vous devriez obtenir BaseClassCValidator.

+0

C'est ma faute. Je ne vois pas que StackOverflow ne montre pas toutes mes questions. Je viens de mettre à jour cette question. Voyons ça. –

Questions connexes