我对Ninject不太熟悉,所以我可能在这里有一个完全错误的概念,但这就是我想要做的.我有一个多租户Web应用程序,并希望注入一个不同的类对象,具体取决于用于访问我的网站的URL.
虽然也许我可以在绑定中使用.When(),但你得到了这个想法:
private static void RegisterServices(IKernel kernel)
{
var currentTenant = TenantLookup.LookupByDomain(HttpContext.Current.Request.Url.Host.ToLower());
if (currentTenant.Foldername == "insideeu")
{ kernel.Bind<ICustomerRepository>().To<AXCustomerRepository>(); }
else
{ kernel.Bind<ICustomerRepository>().To<CustomerRepository>(); }
...
Run Code Online (Sandbox Code Playgroud)
问题是此时HttpContext.Current为null.所以我的问题是如何在NinjectWebCommon.RegisterServices中获取HttpContext数据.我对Ninject可能出错的任何方向都会非常感激.
谢谢