2009-11-25 5 views
1

Dans mon application MVC, j'inscris tous mes contrôleurs en utilisant la réflexion dans le gestionnaire Application_Start. Cela crée fondamentalement tous les types qui sont utilisés sur n'importe quel paramètre de contrôleur et l'ajoute au conteneur.Quelle est la meilleure façon d'initialiser un contrôleur MVC avec plusieurs paramètres du même type en utilisant Castle Windsor?

J'ai maintenant une situation où j'ai plusieurs paramètres sur mon contrôleur qui sont du type . Voici un exemple simple de mon problème:

public class ClassA : ICustomType 
{ ... } 

public class ClassB : ICustomType 
{ ... } 

public class CustomController : Controller 
{ 
    public CustomController(ICustomType a, ICustomType b) 
    { ... } 
} 

Je sais que je peux définir CustomController dans mon fichier web.config à l'aide du groupe <components>. Cependant, je suis curieux de savoir s'il y a un moyen de spécifier "ClassA" comme premier paramètre et "ClassB" comme deuxième paramètre en dehors de mon fichier web.config ??

Répondre

4
container.Register(
    Component.For<ICustomType>().Named("a").ImplementedBy<ClassA>(), 
    Component.For<ICustomType>().Named("b").ImplementedBy<Classb>() 
); 
Questions connexes