使用带有多个构造函数参数的bind时,Sequence包含多个元素错误

时间:2014-11-29 19:59:44

标签: asp.net-mvc-5 ninject.web.mvc

MVC5ninject 3.2版本一起使用我注意到ninject正在抛出此错误

Sequence contains more than one element
解析/注入依赖时

我有一个电子邮件服务,使用sendgridMVC 5

中运行的Azure WebSites应用程序发送电子邮件

如果我在ninjectwebcommon中注册服务如下,则可以正常工作

var sgUserName = ConfigurationManager.AppSettings["SG_UserName"];
var sgPassword = ConfigurationManager.AppSettings["SG_Password"];

//Register email service
kernel.Bind<IEmailService>()
    .To<EmailService>()
    .WithConstructorArgument("userName", sgUserName)
    .WithConstructorArgument("password", sgPassword);

下面的代码给出了

Sequence contains more than one element
解析/注入依赖项时出现

错误。不确定这是否是已知问题

var sgUserName = ConfigurationManager.AppSettings["SG_UserName"];
var sgPassword = ConfigurationManager.AppSettings["SG_Password"];

//Register email service
kernel.Bind<IEmailService>()
    .To<EmailService>()
    .WithConstructorArgument(sgUserName)
    .WithConstructorArgument(sgPassword);

1 个答案:

答案 0 :(得分:0)

我知道这已经过时了,但是想要回答发生此错误的任何人。

当只有一个时,可以省略ArgumentName 我不会和没有 当有多个参数时,每个参数都需要ArgumentName。

这不是一个真正的问题,。WithConstructorsArgument只需要和参数名称。