我正在使用 NInject。我有一个像这样的对象
interface IFoo {}
class Foo : IFoo {
public Foo(string magic, IBar bar) {}
}
我希望能够通过只传递魔法来注入一些 foo 。每个类的魔法是不同的,所以这应该返回不同的实例。
s_Kernel.Get<IFoo>("magic");
s_Kernel.Get<IFoo>("not-so-magic");
我第一次尝试绑定它我已经完成了
s_Kernel.Bind<IFoo>().To<Foo>();
但是后来我必须用看起来有点不合适的东西来查找它。
s_Kernel.Get<IFoo>(new ConstructorArgument("magic", magic), s_Kernel.Get<IBar>());
我不想明确地将自己绑在魔线上。
我得到的印象Bind<IFoo>().ToConstructor(ctorArg => new Foo(xxx, ctorArg.Kernel.Get<IFoo>());
几乎可以让我到达那里,但我不知道我应该为“xxx”输入什么,以便它查找参数。