在Ninject 1.0中,我有以下绑定定义:
Bind<ITarget>().To<Target1>().Only(When.Context.Variable("variable").EqualTo(true));
Bind<ITarget>().To<Target2>();
Run Code Online (Sandbox Code Playgroud)
鉴于我有这样的绑定:
ITarget target = kernel.Get<ITarget>(With.Parameters.ContextVariable("variable", true));
ITarget target = kernel.Get<ITarget>(With.Parameters.ContextVariable("variable", false));
Run Code Online (Sandbox Code Playgroud)
第一个调用被解析为Target1的实例,第二个调用被解析为Target2的实例.
如何将其翻译成Ninject 2.0?
parameters ninject conditional-binding contextual-binding ninject-2
为什么抛出InvalidCastException?有人可以形容我这种行为吗?
object zero = 0;
decimal? dec = (decimal?)zero;
Run Code Online (Sandbox Code Playgroud)