In Ninject 1.0 I had following binding definitions:
Bind<ITarget>().To<Target1>().Only(When.Context.Variable("variable").EqualTo(true));
Bind<ITarget>().To<Target2>();
Given such bindings I had calls:
ITarget target = kernel.Get<ITarget>(With.Parameters.ContextVariable("variable", true));
ITarget target = kernel.Get<ITarget>(With.Parameters.ContextVariable("variable", false));
First call was resolved to instance of Target1, second call was resolved to instance of Target2.
How to translate this into Ninject 2.0?
You can use metadata,