asp.net-mvc-5 - 使用带有多个构造函数参数的绑定(bind)时,序列包含多个元素错误

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

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

Sequence contains more than one element

当解析/注入(inject)依赖时

我有一个电子邮件服务,它使用 sendgridAzure 网站 中运行的 MVC 5 应用程序发送电子邮件

如果我在 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

解析/注入(inject)依赖项时出错。不确定这是否是已知问题

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

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

最佳答案

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

当只有一个 ArgumentName 时,省略 ArgumentName 可能没问题。
我不会也没有。

当有多个参数时,每个参数都需要 ArgumentName。

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

关于asp.net-mvc-5 - 使用带有多个构造函数参数的绑定(bind)时,序列包含多个元素错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27206501/

相关文章:

css - 停止 Bundle Transformer 在 LESS 中转换相对路径

inversion-of-control - Unity IoC 与 ASP.NET MVC5

c# - 在两个服务的构造函数之间检测到循环依赖

c# - MVC View 呈现为原始 HTML

c# - MVC5 的 CWE-ID 100 修复

c# - AutoFac - 在 app_start 上初始化重量级单例

c# - Ninject.MVC3。 Bootstrapper.Initialize 抛出 "Sequence contains no elements"

asp.net-mvc - 从 MVC 中的 _Layout.cshtml 中的 Ninject 获取对象实例

asp.net-mvc - Ninject 注册每个请求

c# - 使用 Ninject 的参数化工厂