2
我有一类称为MyMailSender结合称为EmailController的asp.net控制器。ASP.NET MVC和Ninject 2.0绑定问题
E.g.
public EmailController(IMailSender sender)
{
//MyMailSender
this.sender = sender;
}
这MyMailSender
类也依赖于一个名为MessageSender
类。
现在我的过程中通过执行以下作品,未经注射。
public class MyMailSender : IMailSender
{
private IMessageSender messageSender;
public MyMailSender()
{
messageSender = new SmtpMessageSender("mail.address.com", 25);
}
}
如何使用Ninject将此依赖类绑定到MyMailSender
类?
MyMailSender
最初的结合是通过控制器工厂结合
public override void Load()
{
Bind<IMailSender>()
.To<MyMailSender>();
}
我试图绑定到控制器工厂像做:
Bind<IMessageSender>()
.To<SmtpMessageSender>().WithConstructorArgument("mail.address.com", 25);
,但我怀疑,我不应该绑定在这里对这种类型的结合。我有什么选择?
我的错误信息是:
Error activating string
No matching bindings are available, and the type is not self-bindable.
Activation path:
4) Injection of dependency string into parameter hostname of constructor of type SmtpMessageSender
3) Injection of dependency IMessageSender into parameter messageSender of constructor of type MyMailSender
2) Injection of dependency IMailSender into parameter sender of constructor of type EmailController
1) Request for EmailController
Suggestions:
1) Ensure that you have defined a binding for string.
2) If the binding was defined in a module, ensure that the module has been loaded into the kernel.
3) Ensure you have not accidentally created more than one kernel.
4) If you are using constructor arguments, ensure that the parameter name matches the constructors parameter name.
5) If you are using automatic module loading, ensure the search path and filters are correct.
我试图MyMailSender使用构造器注入从乞讨,并得到一个错误--->错误激活串 没有匹配的绑定是可用的,并且类型不是自可绑定。 激活路径:依赖字符串的 4)注射入式SmtpMessageSender – Keith
对不起的构造函数的参数主机名,看我的更新。您需要指定帕拉姆名称和值使用'WithConstructorArgument()'时。我假设了param的名字,但你明白了。 – Mrchief
谢谢!那样做了! – Keith