Ninject has the functionality of self binding
like Bind<Samurai>().ToSelf();
I read about this but I don't get the importance or how this can be useful. Any comments are appreciated.
Ninject has the functionality of self binding
like Bind<Samurai>().ToSelf();
I read about this but I don't get the importance or how this can be useful. Any comments are appreciated.
If Ninject finds a object that needs to be created and it has a constructor that has a
Samurai
parameter it does not know how to instantiate it.But when you use
Bind<Samurai>().ToSelf();
then Ninject knows that aSamurai
needs to be created to pass to theSamurai
parameter.If that binding was not there then ninject didn't know what to pass, for example there might have been a
SamuraiSubClass
type. But by explicitly saying that when Ninject finds aSamurai
parameter that it needs to create aSamurai
for that parameter then Ninject knows exactly what to do.I use the .WithConstructorArgument() quite a bit.
Bind<Samurai>().ToSelf().WithConstructorArgument("owner", user);
Just a nice way to provide an object(s) to your Samuari constructor when it is being injected.