私は 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>(); }
...
問題は、この時点で HttpContext.Current が null であることです。私の質問は、NinjectWebCommon.RegisterServices で HttpContext データを取得する方法です。私がNinjectで間違っている可能性がある場所についての指示も大歓迎です。
ありがとうございました