Ninject: What does it mean to bind something to it

2019-05-01 00:41发布

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.

2条回答
做个烂人
2楼-- · 2019-05-01 01:21

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 a Samurai needs to be created to pass to the Samurai 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 a Samurai parameter that it needs to create a Samurai for that parameter then Ninject knows exactly what to do.

查看更多
爷、活的狠高调
3楼-- · 2019-05-01 01:23

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.

查看更多
登录 后发表回答