简体   繁体   English

如何在温莎城堡注册mongodb?

[英]How to register mongodb with castle windsor?

I am trying to insert an instance of MongoDatabase and don't know a good way to accomplish this. 我正在尝试插入MongoDatabase的实例,并且不知道实现此目的的好方法。

I could try to wrap it in another object but that seems like a wasted abstraction since I do want to have direct access to the MongoDatabase object. 我可以尝试将其包装在另一个对象中,但这似乎是一种浪费的抽象,因为我确实希望直接访问MongoDatabase对象。

I was hoping that I would be able to create an object with then pass it to castle windsor and tell it to use that object when resolving. 我希望可以创建一个对象,然后将其传递给温莎城堡,并告诉它在解析时使用该对象。

Was hoping something like 希望像

var client = new MongoClient("mongodb://localhost");
var server = client.GetServer();
var database = server.GetDatabase("test");

Then I was hoping I could register with Windsor Castle the database object similiar to 然后,我希望可以向温莎城堡注册与之类似的数据库对象

container.Register(Component.For(typeOf(MongoDatabase)).UseTheCreatedObject(database));

Is it possible to do this or another way to get a MongoDatabase object setup? 是否可以这样做或以其他方式获取MongoDatabase对象设置?

The answer was what Krzysztof Koźmic suggested. 答案就是KrzysztofKoźmic的建议。 I was initially doing something like 我最初做的是

Component.For(typeOf(MongoDatabase)).ImplementedBy<MongoDatabase>().Instance(database);

What this caused was an error that said MongoDatabase is already registered or implemented(can't remember). 这引起的是一个错误,该错误说MongoDatabase已经注册或实现(不记得了)。 So what I had to do was just remove the ImplementedBy. 所以我要做的就是删除ImplementedBy。

尝试:

Component.For<MongoDatabase>().Instance(database);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM