我正在尝试在我的WebApi项目中使用Ninject。
let kernel = new StandardKernel()
kernel.Bind<ITestDomain>().To<TestDomain>() |> ignore
let (resolver:Dependencies.IDependencyResolver) = upcast new NinjectDependencyResolver(kernel)
GlobalConfiguration.Configuration.DependencyResolver <- resolver
我最终收到此错误:
{
"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",
&#34; exceptionType&#34;:&#34; Ninject.ActivationException&#34;&#34;堆栈跟踪&#34;:&#34;在Ninject.Activation.Context.Resolve()\ r \ n在Ninject.KernelBase。&lt;&gt; c__DisplayClass15.b__f(IBinding binding)\ r \ n在System.Linq.Enumerable.WhereSelectListIterator 2.MoveNext()\r\n at System.Linq.Enumerable.<CastIterator>d__94
1.MoveNext ()\ r \ n在System.Linq.Enumerable.d__16 2.MoveNext()\r\n at System.Collections.Generic.List
1..ctor(IEnumerable 1 collection)\r\n at System.Linq.Enumerable.ToList[TSource](IEnumerable
1 source)\ r \ n在Ninject.Web.WebApi.Filter.DefaultFilterProvider.GetFilters( System.Linq.Enumerable.d__16 2.MoveNext()\r\n at System.Linq.Buffer
1..ctor(IEnumerable { {1}} 1.d__1.MoveNext()\ r \ n at System.Linq.Buffer 1 source)\r\n at System.Linq.OrderedEnumerable
1 source)\ r \ n at System.Linq.Enumerable.d__74 1..ctor(IEnumerable
1..ctor (IEnumerable 1.MoveNext()\r\n at System.Web.Http.Controllers.HttpActionDescriptor.<RemoveDuplicates>d__3.MoveNext()\r\n at System.Linq.Buffer
1.MoveNext()\ r \ n at System.Collections.Generic.List 1 source)\r\n at System.Linq.Enumerable.<ReverseIterator>d__74
1 collection)\ r \ n at System.Linq.Enumerable.ToList [TSource](IEnumerable { {1}} 1.CreateValue()\ r \ n在System.Lazy 1..ctor(IEnumerable
1.get_Value()\ r \ n在System.Web.Http.Controllers.HttpActionDescriptor.GetFilterPipeline()\ r \ n at System.Web.Http.Controllers.HttpActionDescri ptor.GetFilterGrouping()\ r \ n在System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext,CancellationToken cancellationToken)\ r \ n在System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()&#34;
1 source)\r\n at System.Web.Http.Controllers.HttpActionDescriptor.InitializeFilterPipeline()\r\n at System.Lazy