甚至不知道這是可以做到的,可能需要重新考慮整個事情,但是我想在做之前會問。使用相同的參數值與溫莎的依賴關係
好吧,我有一個倉庫類應用程序中的任何位置下面的構造
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'中,然後使用它手動創建存儲庫。 –