问题: 我有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
?