Ninject에 익숙하지 않아 완전히 개념이 잘못되었을 수도 있지만 이것이 내가 원하는 것입니다. 멀티 테넌트 웹 애플리케이션을 보유하고 있으며 내 사이트에 어떤 URL이 사용되었는지에 따라 다른 클래스 객체를 주입하려고합니다. 이의 라인을 따라HttpContext.Current에서 MVC4 조건부 바인딩을 사용하는 Ninject
뭔가, 어쩌면 내가 바인딩에() .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에 잘못 될 수있는 방향에 대해서도 많은 도움이 될 것입니다.
당신에게
, 감사합니다. 클래스 호출 인터페이스 (ICustomerRepository)에 대한 호출을 캐스팅해야했거나 암시 적 변환 오류가 발생했습니다. – Crob
@Crob sweet, glad it help. 나는 후손을 위해 캐스트에서 편집했다. – McGarnagle
안녕하세요, 저는 비슷한 것을하고 싶습니다. 동일한 리포지토리 및 작업 단위를 사용하지만 dbentext는 각 테넌트에 대해 다른 연결 문자열을 전달하는 임차인마다 만들어집니다. 이 연결 문자열은 별도의 인증 DB에서 가져옵니다. 그래서 내 질문에, 내가 그 모든 로그인 ninject registerservices()해야합니까? – Yashvit