과 함께 실패합니다. 다음과 같은 간단한 ApiController 예제가 있습니다.Ninject 바인딩이 ApiController에서 "Ninject 구성 요소 ICache로드 오류"
로드 오류 Ninject에 구성 요소 ICACHE 이러한 구성 요소는 커널의 구성 요소 컨테이너에 등록되지 않은 :이 나에게 오류를 제공
public class TestAPIController : ApiController
{
public TestAPIController(IKernel kernel) { }
[HttpGet]
public string Test()
{
return "success! " + DateTimeOffset.Now.ToString("F");
}
}
.
Ninject.WebApi.DependencyResolver 패키지를 설치했지만 여전히 실패하고 있습니다. 사용
private static IKernel CreateKernel()
{
var kernel = new StandardKernel(new VBNinjectModule());
kernel.Bind<Func<IKernel>>().ToMethod(ctx =>() => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
//GlobalConfiguration.Configuration.DependencyResolver = new VBNinjectDependencyResolver(kernel);
GlobalConfiguration.Configuration.DependencyResolver = new Ninject.WebApi.DependencyResolver.NinjectDependencyResolver(kernel);
return kernel;
}
: 여기
내 CreateKernel의 NinjectWebCommon의 클래스입니다Ninject에 3.0.1.10
Ninject.MVC3 3.0.0.6
Ninject.Web.Common : 3.0 .0.7
Ninject.WebApi.DependencyResolver 0.1.4758.24814
도움을 미리 감사드립니다.
건배!
ninject가 IKernel을 자동 바인딩 (또는 IResolutionRoot가 맞습니까?)했기 때문에 바인드 할 필요가 없습니다. Func 팩토리의 인젝션은 자동으로 작동합니다. 어쨌든 .Bind>() (IFoo 바인딩이있는 한)을 지정할 필요가 없습니다. 또한 IResolutionRoot를 주입 해보십시오. –
BatteryBackupUnit