Je vais avoir quelque chose comme ceci:valeur injectez dans la dépendance injectée
class Root
{
public Root(IDependency dep)
{}
}
class Dependency:IDependency
{
public Dependency(int val)
{}
}
Et je suis en train d'obtenir une référence à la racine en utilisant ninject. donc je configure comme ça
var module = new InlineModule(mod => mod.Bind<IDependency>().To<Dependency>());
var kernel = new StandardKernel(module);
Je voudrais injecter dans la dépendance une valeur « val » qui est connu seulement au moment d'obtenir la référence racine de ninject.
Ce que je voudrais faire est quelque chose comme ceci:
Kernel.Instance.Get<Root>(With.Parameters.ConstructorArgument("val", 12));
Est-ce quelque chose comme ceci possible en utilisant ninject 1.0?
Je pense que je pourrais le faire un peu plus simplement comme: Bind() .Pour() .WithConstructorArgument ("val", (IContext suite) => \t \t cont.ParentContext.Parameters. Récupère ("val")); Mais je n'aime pas utiliser le ParentContext. :(It –
Silviu
@Silviu: Essayez-le - le plus court le mieux, il semblait logique pour moi de faire directement ce que vous demandiez, mais je ne pouvais pas le faire travailler pour moi dans le contexte que je l'essayais –
@ Silviu: Est-ce que vous l'avez fait dans le cadre du 'Bind' de travail? Si oui, si vous voulez chuck quelque chose qui fonctionne dans les commentaires, je vais le mettre dans les exemples –