I am tring to use Ninject as a IoC container but could not understand how to create an instance of a class that has more than 1 parameter in the constructor. Basically I have a
It's very easy. No matter how many constructor arguments, the binding stays the same:
Bind().To();
Let's say MyAuthenticator
had a constructor with one parameter of type IFoo
.
All you got to do is tell ninject how it can resolve/create an IFoo
. Again, very simple:
Bind().To();
You don't need WithConstructorArgument
ever, except in case you want to override the default behavior of ninject. Let's say MyAuthenticator
has a parameter of type IFoo
plus another parameter string seed
which you want to configure specifically. All you'd need is:
Bind().To();
Bind().To()
.WithConstructorArgument("seed", "initialSeedValue");
no need to specify the value of the IFoo
parameter!