2013-01-21 86 views
1

我想插入一個MongoDatabase的實例,不知道一個很好的方法來完成這個。如何註冊mongodb與城堡windsor?

我可以嘗試將它包裝在另一個對象中,但這似乎是一個浪費的抽象,因爲我確實想直接訪問MongoDatabase對象。

我希望能夠創建一個對象,然後將它傳遞給城堡windsor並告訴它在解析時使用該對象。

希望像

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

然後,我希望我能與溫莎城堡的數據庫對象similiar註冊

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

是否有可能做到這一點或其他的方式來獲得MongoDatabase對象設置?

答案是KrzysztofKoźmic建議的。我最初是在做類似

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

這是什麼引起的是一個錯誤,說MongoDatabase已經註冊或實現(不記得)。所以我要做的只是刪除ImplementedBy。

+2

你的意思是這樣的嗎? '.Instance(database)' –

+0

當我今晚有機會時,我會試試這個。我想我嘗試了這個並得到了一個奇怪的錯誤,但會重試。謝謝。 – Josh

回答

0

嘗試:

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