Ninject passer dans le constructeur de valeurs

Avec Ninject, comment voulez-vous configurer le noyau afin que je puisse définir ce constructeur valeurs ne sont que de passage dans l'instanciation d'un objet?

J'ai le texte suivant configurés dans un module:

Bind<IService1>()
    .To<Service1Impl>()
    .InSingletonScope()
    .Named("LIVE");
Bind<IService2>()
    .To<Service2Impl>()
    .InSingletonScope()
    .Named("LIVE")
    .WithConstructorArgument(
        "service1", 
        Kernel.Get<IService1>("LIVE"));

Service2Impl prend un paramètre dans le constructeur de IService1 mais je souhaite que cela à venir à partir du conteneur. Je veux aussi avoir nommé les liaisons que mon code sera ciblant les différentes versions au moment de l'exécution.

Cela semble fonctionner mais est-ce la bonne façon d'atteindre ce que je veux faire?
Dois-je être atteinte sans l'utilisation de nommé les liaisons et le câblage des différents modules de configuration dans le noyau?

MODIFIER

J'ai utilisé le ToMethod() une méthode pour spécifier un délégué pour appeler à la demande d'un type spécifique. Cela semble un peu plus sympa, je vais prendre le temps de compilation des avertissements si le constructeur de configuration est le mal plutôt que d'avoir à connaître le nom du paramètre que je suis passer en premier.

Grâce

OriginalL'auteur Tim Peel | 2011-05-19

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *