我在ASP.NET Web API应用程序中设置了依赖注入。我有一个场景,其中依赖项依赖于当前请求(例如主机名)上的某些内容。
那么如何将当前请求用作依赖?
以下是我能够提出的内容,但HttpContext.Current
无法在自托管方案中使用。
kernel.Bind<IFoo>()
.ToMethod((context) =>
{
string hostName = HttpContext.Current.Request.Url.Host;
var foo = FooFactory.GetByHostName(hostName);
return foo;
})
.InRequestScope();
我目前正在使用Ninject,但如果可以更好地处理这种情况,我可以切换到不同的IoC容器。