ASP.Net MVC4 프로젝트에서 내 사용자 지정 가상 공급자를 사용하고 있습니다. MyVirtualPathProvider 프로 바이더를 호출 해 봅시다. 공급자는 다음과 같이 OnApplicationStarted 메서드에 등록됩니다.Ninject가있는 사용자 지정 VirtualPathProvider
HostingEnvironment.RegisterVirtualPathProvider(new MyVirtualPathProvider());
이 메서드는 Global.asax.cs의 일부입니다. 상단에있는 I는 다음과 같습니다
[Inject]
public ILogger Logger { get; set; }
가상 사용자 정의에서 :
public class MvcApplication : NinjectHttpApplication
을 지금, 나는 그냥이 같은 내 서비스 중 하나를 주입하는 속성을 사용하여 [주입한다]를 싶습니다
public override VirtualFile GetFile(string virtualPath)
{
...
Logger.Log(...);
불행하게도, 로거 따라서 작동하지 않는 null의 : 경로 제공자는 내가 주입 로거를 사용하여 뭔가를 기록하고 싶습니다 GETFILE 방법을 무시했다.
나는 다음과 같이 사용자 정의 가상 경로 제공 생성자의 매개 변수로 로거를 전달하는 시도 :
HostingEnvironment.RegisterVirtualPathProvider(new MyVirtualPathProvider(Kernel.Get<ILogger>()));
를 불행하게도, 그것은 이동하는 방법이 아니라, 내가 경고를 가지고 있기 때문에 "경고 CS0618 : 'Ninject.Web.Common.NinjectHttpApplication.Kernel'은 사용되지 않습니다. '서비스 탐지기로 Ninject를 사용하지 마십시오.' "
무엇이 잘못 되었습니까? 제발 조언.