【发布时间】:2017-03-20 14:42:11
【问题描述】:
我有以下依赖链:
IUserAppService
IUserDomainService
IUserRepository
IUserDataContext - UserDataContextImpl(string conn)
以上所有接口和实现都注册在 Windsor Castle 容器中。当我使用一个连接字符串时,一切正常。
现在我们要支持多个数据库,在UserAppServiceImpl.cs,我们想根据userId得到不同的IUserRepository(不同的IUserDatabaseContext)如下:
// UserAppServiceImpl.cs
public UserInfo GetUserInfo(long userId)
{
var connStr = userId % 2 == 0 ? "conn1" : "conn2";
//var repo = container.Resolve<IUserRepository>(....)
}
如何将参数connStr 传递给UserDataContextImpl?
【问题讨论】:
-
在深入挖掘之前:将容器传递给您的服务(或任何其他域类型)被认为是一种不好的做法。
标签: castle-windsor