0

I am trying to use Ninject in my WebApi project.

let kernel = new StandardKernel()
kernel.Bind<ITestDomain>().To<TestDomain>() |> ignore

let (resolver:Dependencies.IDependencyResolver) = upcast new NinjectDependencyResolver(kernel)
GlobalConfiguration.Configuration.DependencyResolver <- resolver

I end up getting this error:

 {
          "message":"An error has occurred.",
          "exceptionMessage":"Error activating IFilterProvider using binding 
          from IFilterProvider to DefaultFilterProvider\r\nA  cyclical 
          dependency was detected between the constructors of two   
          services.\r\n\r\nActivation path:\r\n  3) Injection of dependency 
          IFilterProvider into parameter defaultFilterProviders of 
          constructor of type DefaultFilterProviders\r\n  2) Injection of 
          dependency DefaultFilterProviders into parameter filterProviders 
          of constructor of type DefaultFilterProvider\r\n  1) Request for 
          IFilterProvider\r\n\r\nSuggestions:\r\n  1) Ensure that you have 
          not declared a dependency for IFilterProvider on any 
          implementations of the service.\r\n  2) Consider combining the 
          services into a single one to remove the cycle.\r\n  3) Use 
          property injection instead of constructor injection, and implement 
          IInitializable\r\n     if you need initialization logic to be run 
          after property values have been injected.\r\n",

"exceptionType":"Ninject.ActivationException","stackTrace":" at Ninject.Activation.Context.Resolve()\r\n at Ninject.KernelBase.<>c__DisplayClass15.b__f(IBinding binding)\r\n at System.Linq.Enumerable.WhereSelectListIterator2.MoveNext()\r\n at System.Linq.Enumerable.<CastIterator>d__941.MoveNext()\r\n at System.Linq.Enumerable.d__162.MoveNext()\r\n at System.Collections.Generic.List1..ctor(IEnumerable1 collection)\r\n at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)\r\n at Ninject.Web.WebApi.Filter.DefaultFilterProvider.GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)\r\n at System.Web.Http.Controllers.HttpActionDescriptor.b__0(IFilterProvider fp)\r\n at System.Linq.Enumerable.d__162.MoveNext()\r\n at System.Linq.Buffer1..ctor(IEnumerable1 source)\r\n at System.Linq.OrderedEnumerable1.d__1.MoveNext()\r\n at System.Linq.Buffer1..ctor(IEnumerable1 source)\r\n at System.Linq.Enumerable.d__741.MoveNext()\r\n at System.Web.Http.Controllers.HttpActionDescriptor.<RemoveDuplicates>d__3.MoveNext()\r\n at System.Linq.Buffer1..ctor(IEnumerable1 source)\r\n at System.Linq.Enumerable.<ReverseIterator>d__741.MoveNext()\r\n at System.Collections.Generic.List1..ctor(IEnumerable1 collection)\r\n at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)\r\n at System.Web.Http.Controllers.HttpActionDescriptor.InitializeFilterPipeline()\r\n at System.Lazy1.CreateValue()\r\n at System.Lazy1.LazyInitValue()\r\n at System.Lazy1.get_Value()\r\n at System.Web.Http.Controllers.HttpActionDescriptor.GetFilterPipeline()\r\n at System.Web.Http.Controllers.HttpActionDescriptor.GetFilterGrouping()\r\n at System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()"

        }

    Any ideas how to fix this?
schmoopy
  • 6,419
  • 11
  • 54
  • 89
  • i'm convinced it's the same issue as [here](http://stackoverflow.com/questions/26312231/ninjectdependencyresolver-fails-binding-modelvalidatorprovider) as the issue applies to F# as well. – BatteryBackupUnit Nov 21 '15 at 09:51
  • @BatteryBackupUnit - issue still exists after trying to uninstall, reinstall and change the way the dependency is loaded. Actually the error changed from: Error activating IFilterProvider using binding from IFilterProvider to DefaultFilterProvider To: Error activating ModelValidatorProvider using binding from ModelValidatorProvider to NinjectDefaultModelValidatorProvider A cyclical dependency was detected between the constructors of two services So after following the post, I now get the error they were trying to solve (instead of my previous error) – schmoopy Nov 23 '15 at 17:04
  • What actually worked for me was reinstalling everything and NOT using the App_Start, I ONLY have this in my global file: let kernel = new StandardKernel() config.DependencyResolver <- new NinjectDependencyResolver(kernel) – schmoopy Nov 23 '15 at 17:19

0 Answers0