ASP.Net MVC3 프로젝트에서 Ninject (3.0)를 사용하고 있습니다. 요청 처리 중 일부 지점에서 몇 가지 작업을 수행하려고합니다.MVC3 프로젝트의 Ninject 및 ChildKernel : "Ninject 구성 요소 ICache로드 오류"
요청 당 세션 패턴을 사용하고 있지만이 작업이 현재 요청과 동일한 세션을 공유하지 않도록하고 싶습니다. 그래서, 저는 ChildKernels이이 문제에 대해 저를 도울 수 있다고 생각했습니다. 나는 그와 함께 또 다른 아이 커널에서 ISession 바인딩을 만들려고하지만, 시작되었다 :
var child = new Ninject.Extensions.ChildKernel.ChildKernel(NinjectMVC3.Kernel);
child.Dispose();
나는 내가 .Dispose()
에서 내 요청 (하지의 말에 Error loading Ninject component ICache
예외 를 얻을 요청 중에 그런 식으로 코드를 실행하는 경우 요구). child.Dispose()
을 제거하면 모든 문제가 해결됩니다.
그래서 ChildKernel과 함께 할 올바른 방법을 선택하고 있습니까? 자식 커널을 명시 적으로 처리하지 않고 사용하는 것이 안전합니까? 왜 자식 커널을 처리하면 요청이 끝날 때 Ninject가 throw 되는가?
감사합니다. Unity에서 ChildContainer에 익숙해 져서 ChildKernel을 같은 방법으로 사용하는 방법에 대해 생각했습니다. ChildContainer가 조금 더 투명하게 느껴지면 조건부 바인딩에 익숙해 지도록 노력할 것입니다. :) – Shaddix