C# 使用DI绑定循环连接字符串构造函数参数

C# 使用DI绑定循环连接字符串构造函数参数,c#,dependency-injection,ninject,C#,Dependency Injection,Ninject,我正在寻找如何最好地绑定两个连接的建议 在我的依赖项中重复出现的字符串 目前我有(使用ninject): Bind().To()) .WithConstructorArgument(“db1ConnStr”,db1ConnectionString) .带有构造函数参数(“db2ConnStr”,db2ConnectionString); 将()绑定到()上 .WithConstructorArgument(“db1ConnStr”,db1ConnectionString) .带有构造函数参数(“

我正在寻找如何最好地绑定两个连接的建议 在我的依赖项中重复出现的字符串

目前我有(使用ninject):

Bind().To())
.WithConstructorArgument(“db1ConnStr”,db1ConnectionString)
.带有构造函数参数(“db2ConnStr”,db2ConnectionString);
将()绑定到()上
.WithConstructorArgument(“db1ConnStr”,db1ConnectionString)
.带有构造函数参数(“db2ConnStr”,db2ConnectionString);
等等

这显然不是最优雅的代码


是否有方法将db1ConnectionString的值绑定到每个名为“db1ConnStr”的字符串构造函数参数?

我将创建一个包含连接字符串的类:

public class ConnectionStringProvider
{
    public string Db1ConnectionString { get; set; }
    public string Db2ConnectionString { get; set; }
}
注意:如果需要,还可以为其创建接口
IConnectionStringProvider

然后类
SqlFoo
SqlBar
可以将其用作依赖项

public class SqlFoo
{
    public SqlFoo(ConnectionStringProvider connectionStringProvider)
    {
         //do something with connectionStringProvider.Db1ConnectionString 
    }
}
注册过程如下所示:

Bind<ConnectionStringProvider>().ToConstant(
    new ConnectionStringProvider
    {
        Db1ConnectionString = db1ConnectionString,
        Db2ConnectionString = db2ConnectionString,
    });
Bind<IFoo>().To<SqlFoo>();
Bind<IBar>().To<SqlBar>();
Bind().ToConstant(
新连接字符串提供程序
{
Db1ConnectionString=Db1ConnectionString,
Db2ConnectionString=Db2ConnectionString,
});
绑定()到();
绑定()到();

此版本的初始版本到哪里去了?在过去的几天里,我可以发誓我看到并有效地给出了同样的答案吗啊找到了
Bind<ConnectionStringProvider>().ToConstant(
    new ConnectionStringProvider
    {
        Db1ConnectionString = db1ConnectionString,
        Db2ConnectionString = db2ConnectionString,
    });
Bind<IFoo>().To<SqlFoo>();
Bind<IBar>().To<SqlBar>();