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