我正在尝试根据构造函数名称注册我的数据库的不同实例。我对温莎城堡中的“先胜”概念很熟悉,但显然我并不完全理解。
我希望下面的 uaxDB 参数名称向 ControllerInstaller 发出信号,以向我提供具有 UAXmongoURL、UAXmongoConnection 参数的实例。相反,我得到了第一个实例,带有 USERmongoURL 和 USERmongoconnection 参数。所以......首先获胜,但即使我使用命名实例?如何修复以使命名实例胜过任何默认排序?
注意我不只是想交换两个组件的顺序,因为我将有更多的实例,所以我需要扩展到超过 2....换句话说,我真的需要了解我是什么做错了。
// Trying to avoid this constructor declaration in favor of the uncommented constructor
// public DBViewerModel(IMongoConnection devDB, IMongoConnection uaxDB, IMongoConnection prodDB)
public DBViewerModel(IMongoConnection mongoConnection)
{
//this.devMongoConnection = devDB;
//this.uaxMongoConnection = uaxDB;
//this.prodMongoConnection = prodDB;
this.mongoConnection = mongoConnection;
}
随着注册...
container.Register(
Component
.For<IMongoConnection>()
.Named("dataDB")
.ImplementedBy<MongoConnection>()
.DependsOn(Property.ForKey("DBlocation").Eq(USERmongoURL),
Property.ForKey("DB").Eq(USERmongoCollection))
.LifeStyle.PerWebRequest,
Component
.For<IMongoConnection>()
.Named("uaxDB")
.ImplementedBy<MongoConnection>()
.DependsOn(Property.ForKey("DBlocation").Eq(UAXmongoURL),
Property.ForKey("DB").Eq(UAXmongoCollection))
.LifeStyle.PerWebRequest);