【问题标题】:Ninject syntax for "Bind" with multiple arguments带有多个参数的“绑定”的 Ninject 语法
【发布时间】:2011-04-10 20:19:11
【问题描述】:

如何在 Ninject 语法中使用多个参数,如下所示?

Bind<IMyRepository>()
.To<SqlMyRepository>()
.WithConstructorArgument("connectionString",
 ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString
 );

如果需要传递多个参数怎么办?

【问题讨论】:

    标签: c# asp.net-mvc ninject


    【解决方案1】:

    您可以将调用链接到WithConstructorArgument

    Bind<IMyRepository>()
        .To<SqlMyRepository>()
        .WithConstructorArgument("connectionString", ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString)
        .WithConstructorArgument("timeout", 10000);
    

    【讨论】:

    • 如果你的参数名在ctor中改变了,你不会得到编译错误并且ninject会绑定失败。
    • @seabass 这是依赖注入的缺点,在运行时定义事物的灵活性可能导致运行时错误。集成测试应该有助于清除它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多