2016-03-10 116 views
0

我试图绑定一个接口的方式,Ninject可以确定哪个具体类使用的控制器的版本,并找到最新版本的适配器。有条件地绑定Ninject在WebApi

控制器和适配器上实现此接口:

public interface IVersioned { 
    Version Version {get;set;} 
} 

我想结合IMyAdapter的所有适配器,所以我可以得到适配器的控制器而最近的版本。

public class MyController { 
    public MyController(IMyAdapter Adapter) { 
    } 
} 

我已经设置了NinjectDependencyResolver。我试图使用Bind()。ToMethod(...),但我无法获得试图获取适配器的控制器。是否有可能找出哪个控制器试图获取适配器。我可以告诉它是一个IMyController,但我无法获取该实例,因此我可以获取控制器的版本。

回答

0

我想通过使用反射从类型(x.Request.ParentRequest.Service)中读取一个静态字段,而不是获取一个实例,如果我得到控制器的类型。然后当我找到合适的适配器时,我可以创建一个实例。

编辑:通过使用属性找到更简单的解决方案。