Проблема: У меня есть webapi serviss, где почти каждый пользователь имеет свой собственный экземпляр базы данных для подключения. Поэтому я должен установить разные connection string
для каждого пользователя. Чтобы распознать пользователя, я передам конкретный токен в заголовок. Что касается на этом Токене, система должна построить и установить differenct строки соединения в конструктор слоя доступа к данным (Order в данном случае)Как установить аргумент для связывания 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
?