我对城堡核心有问题,我正在尝试向特定存储库注入两个不同的数据库连接。
public class Repository1 {
public Repository1(System.Data.Common.DbConnection conn) { }
}
public class Repository2 {
public Repository2(System.Data.Common.DbConnection conn) { }
}
现在举例来说,我希望将Mysql连接注入Repository1,并将Oracle连接注入repository2。
答案 0 :(得分:5)
这样的事情:
container.Register(Component
.For<DbConnection>()
.ImplementedBy<MysqlConnection>()
.Named("mysql"));
container.Register(Component
.For<DbConnection>()
.ImplementedBy<OracleConnection>()
.Named("oracle"));
container.Register(Component
.For<Repository1>()
.ServiceOverrides(new { conn = "mysql" }));
container.Register(Component
.For<Repository2>()
.ServiceOverrides(new { conn = "oracle" }));
您可能需要调整DbConnection注册,因为我不知道确切的类名是什么,或者是否需要其他配置设置。