I am using Ninjec, Ninject.Web.MVC and Ninject.Web.Common
When I start my mvc application I get this binding error:
What do I wrong in my binding?
Ninjects looks for constructors in the following order:
[Inject]
In your case your TLPContext
constructor is not marked with [Inject]
so the 2. rules applies and Ninject will try to resolve the base class contructor and then throws the exception.
So you can solve this by marking your constructor with the InjectAttribute
[Inject]
public TLPContext()
: base("DefaultConnection")
{
this.Configuration.LazyLoadingEnabled = false;
}
Or you can specify the constructor with the ToConstructor
method when registering your TLPContext
:
kernel.Bind<TLPContext>().ToConstructor(_ => new TLPContext());
I used to have similar problem. I was using Ninject MVC
and I tried to instantiate the kernel
using the new StandardKernel
ctor, and it did't work.
My problem was the point 3 that @Elisa mentioned earlier: Ensure you have not accidentally created more than one kernel.
I solved it by using bootstrapper.Kernel
instead.