0
我目前在我的應用程序中使用了mongodb-csharp驅動程序。通過調用lambda來關閉打開的任何類型的泛型類型
我想我的存儲庫取決於IMongoCollection<T>
,我想弄清楚如何配置StructureMap讓我在請求時調用lambda。對於非開放式泛型類型,我把它設置是這樣的:
For<IMongoDatabase>()
.HybridHttpOrThreadLocalScoped()
.Use(cx =>
{
var mongo = cx.GetInstance<IMongo>();
return mongo.GetDatabase("TestDB");
});
我想配置StructureMap做類似上述開放仿製藥,但我不知道怎麼弄的類型這是要求:
For(typeof (IMongoCollection<>))
.HybridHttpOrThreadLocalScoped()
.Use(cx =>
{
var db = cx.GetInstance<IMongoDatabase>();
// How do I figure out what to close the generic with?
return db.GetCollection<T>();
});
這是可能的結構圖?我覺得我在這裏失去了一些東西...
我繼續按照你的建議注入'IMongoDatabase',看起來很奇怪我的方法全部用同樣的'var collection = _mongoDatabase.GetCollection();''''''''''''''''我同意你的意見雖然,注入集合有點奇怪。 –
2011-03-23 14:19:38