这是关于如何在 ServiceStack.net 中使用 Funq 注册多个 IDbConnectionFactory 实例的问题
我需要做同样的事情(让一个服务访问不同的数据库连接) - 但上述stackoverflow讨论的答案对我来说并不完全有意义(所以不会让我添加评论)。
这是否意味着每个服务不能多次使用依赖类的实现,例如 IDbConnectionFactory (OrmLiteConnectionFactory)?因此,如果您需要使用多个,您需要创建它的新实现(除了获得唯一的类名之外没有其他原因)?
我曾希望,这就是 name 参数(在 container.Register 方法中)的用途(用于识别同一类的其他实例)。例如,如果你有这样的东西会很方便: container.Register("Db_1", c => new OrmLiteConnectionFactory(connString1, SqlServerOrmLiteDialectProvider.Instance)); container.Register("Db_2", c => new OrmLiteConnectionFactory(connString2, SqlServerOrmLiteDialectProvider.Instance)); 然后像这样在您的服务中使用每个连接: Db["DB_1"].Select... Db["DB_2"].Select 或 Db_1.Select.. Db_2.Select...
叫我懒惰,但编写一个类只是为了获得一个新的类型名称(因为它是 100% 继承而没有额外的属性/方法)似乎是多余的。
我假设我错过了 IoC/DI 的一些关键点,所以很感激有人让我直截了当。
谢谢蒂姆