您将如何在Funq中注册不同的IDbConnectionFactory实例,然后直接在您的服务中访问它们?命名实例会以某种方式在这里发挥作用吗?
这是跨服务使用不同数据库时最好的方法吗?
谢谢!
编辑:
一个例子 ;).我可能会离开这里,因为我对IoC很新,但是比如说我有2个独立的数据库连接,我想注入.在ServiceStack中,这是在Global.asax中完成的.
container.Register<IDbConnectionFactory>(c =>
new OrmLiteConnectionFactory(@"Connection String 1", SqlServerOrmLiteDialectProvider.Instance));
container.Register<IDbConnectionFactory>(c =>
new OrmLiteConnectionFactory(@"Connection String 2", SqlServerOrmLiteDialectProvider.Instance));
Run Code Online (Sandbox Code Playgroud)
这两个似乎都注入了谦逊的海鲂.
然后通过以下方式在服务端自动访问它们:
public IDbConnectionFactory DbFactory { get; set; }
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它似乎给了我第一个注册.如何访问服务端的特定访问权限?希望这会让它更加清晰.
这是ServiceStack.Examples的完整示例,仅使用1个IDbConnectionFactory: Movies Rest