Ninject:按类型_and_注册名称/标识符解析对象

时间:2009-02-10 17:10:18

标签: c# inversion-of-control ninject

我正在寻找一种方法来使用Ninject做这样的事情:

// Sample from the Unity application block
IMyService result = myContainer.Resolve<IMyService>("Data"); 

(来自http://msdn.microsoft.com/en-us/library/cc440957.aspx

有可能吗?

2 个答案:

答案 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代替。