問題: 我有webapi serviss,幾乎每個用戶都有自己的數據庫實例進行連接。所以我必須爲每個用戶設置不同的connection string
。要識別用戶,我會將特定的令牌傳遞到標題中。關於這個令牌,系統構建和設置differenct連接字符串到數據訪問層的構造函數(在這種情況下訂單)如何根據請求標題設置參數到Ninject聯編程序
問: 是否可以傳遞參數Ninject
或請求頭對於任何種類的IoC粘結劑?
IOrders _orders;
public HomeController(IOrders order)
{
_orders = order;
}
這是一個Ninject綁定,但正如您所猜測的,HttpContext.Current
爲空。
private static void RegisterServices(IKernel kernel)
{
var some_value = HttpContext.Current.Request.Headers.GetValues("Token");
kernel.Bind<IOrders>()
.To<Orders>()
.WhenInjectedInto<HomeController>()
.WithConstructorArgument("Token", some_value);
}
也許有許多優雅的方式來做到這一點使用Controller Factory
?