甚至不知道这是可以做到的,可能需要重新考虑整个事情,但是我想在做之前会问。使用相同的参数值与温莎的依赖关系
好吧,我有一个仓库类应用程序中的任何位置下面的构造
public Repository(ISessionManager sessionManager, string dbName)
{
this.sessionManager = sessionManager;
this.dbName = dbName;
}
目前需要使用它使用依赖注入和仓库用,像这样的容器中注册库。
Component.For<IRepository<User, int>>().ImplementedBy<Repository<User, int>>()
.DependsOn(Dependency.OnValue("dbName", "admin")),
我所希望做的是推动数据库名上升了一个层次,其将使用存储库服务的设定。
例如具有与该构造
public SecurityService(ITransactionFactory transactionFactory,
IRepository<User, int> userRepository,
string dbName)
我想要的参数DBNAME与针对ServiceService容器注册,并具有注入参数userRepository当传递该值的服务。
因此,如果另一个服务需要将同一个存储库与不同的数据库一起使用,那么当它被注册时会提供一个新名称。
这可能吗?
[这是一个可能的解决方案](http://stackoverflow.com/a/22690848/1698557)。否则,你可以为'IRepository'创建一个[工厂](https://github.com/castleproject/Windsor/blob/master/docs/typed-factory-facility-interface-based.md),它将dbName作为参数并将其注入到'SecurityService'中,然后使用它手动创建存储库。 –