2011-03-30 71 views
5

如何獲取綁定到特定實現類型的綁定列表?按實現類型查找Ninject綁定

IKernel.Bind<IService>().To(implementationType); 

這樣的事情?

var bindings = IKernel.GetBindings(typeof(IService)) 
        .Where(b=>b.ImplementationType==implementationType) 

回答

7

不容易。如果你能以某種方式構建一個Ninject上下文,你可以做

Kernel.GetBindings(typeof(IService)) 
    .Where(b => b.GetProvider(context).Type == implementationType) 

UPDATE

其實有做它的另一種方法。當你的聲明綁定您可以提供元數據

Kernel.Bind<IService>().To(implementationType) 
    .WithMetadata("type", implementationType); 

然後,你可以通過執行獲得所有綁定此

​​
+0

超級了不起,工作正常,謝謝 – 2011-03-30 15:30:13