我正在寻找一种方法来使用Ninject做这样的事情:
// Sample from the Unity application block
IMyService result = myContainer.Resolve<IMyService>("Data");
(来自http://msdn.microsoft.com/en-us/library/cc440957.aspx)
有可能吗?
答案 0 :(得分:18)
Ninject 2.0具有以下功能:
Bind<IMyService>().To<MyServiceA>().Named("Data");
Bind<IMyService>().To<MyServiceB>().Named("SomethingElse");
kernel.Get<IMyService>("Data"); // will return MyServiceA
答案 1 :(得分:0)
AFAIK无法直接在Ninject中执行此操作,但您可以使用Contextual Binding代替。