MVC 웹 사이트에 사용자 정의 ViewEngine을 주입하고 싶습니다. 이것은 내가 할 것입니다 :InRequestScope 공급자 (사용자 정의 ViewEngine 용)는 appstart에서 한 번만 호출됩니다.
private static IKernel CreateKernel()
{
kernel.Bind<IViewEngine>().ToProvider(new RazorViewEngineProvider()).InRequestScope();
}
이 내 업체입니다 :
public class RazorViewEngineProvider : Provider<RazorViewEngine>
{
protected override RazorViewEngine CreateInstance(IContext context)
{
return new RazorViewEngine();
}
}
문제입니다 : 내가 처음으로 웹 사이트에 갈 때 내 제공자는 한 번만 호출됩니다. 다음에 내 공급자가 어떻게 든 캐시에 남아 있습니다. 그리고 그것은 내가 원하는 것이 아닙니다.
모든 요청시 제공자가 실행되기를 원합니다. 나는 그것을 할 수 있다고 생각했다 .InRequestScope(),하지만 어떤 차이를 만들지 않습니다. 아무도 무슨 일이 일어나는지 알아?
예, 등록이 작동합니다. 그러나 그것은 내가 원하는 것만은 아닙니다. ViewEngine을 모든 요청에 새로 고침하고 싶습니다. BeginRequest가 가장 관련성이 높은 것으로 보이는 global_asax 메소드를 살펴 보았습니다. 하지만 Ninject의 의존성을 사용하고 싶습니다. global_asax의 Ninject Kernel을 사용할 수 없습니다. – user369117
나는 당신의 문제를 복제했다. 실제로'CreateInstance' 메쏘드는 한번만 호출된다. 이것에 대해 나는 두려워. –