簡體   English   中英

在WebApi中與Ninject有條件地綁定

[英]Conditionally binding with Ninject in WebApi

我正在嘗試以一種Ninject可以確定控制器版本使用哪個具體類並查找適配器最新版本的方式來綁定接口。

控制器和適配器都實現此接口:

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

我想綁定IMyAdapter的所有適配器,以便獲得控制器的最接近版本的適配器。

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

我已經設置了NinjectDependencyResolver。 我嘗試使用Bind()。ToMethod(...),但無法獲取嘗試獲取適配器的控制器。 是否有可能找出哪個控制器正在嘗試獲取適配器。 我可以說這是一個IMyController,但我無法獲取實例,因此可以獲取控制器的版本。

我發現,如果沒有得到控制器的類型,就可以使用反射從類型(x.Request.ParentRequest.Service)中讀取靜態字段,而不是獲取實例。 然后,當我找到合適的適配器時,我可以創建一個實例。

編輯:通過使用屬性找到了一個更簡單的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM