현재 응용 프로그램에 mongodb-csharp 드라이버를 사용하고 있습니다.람다를 호출하여 요청한 항목을 모두 열고 일반 형식을 닫습니다.
내 저장소가 IMongoCollection<T>
에 의존하기를 바라고 있습니다. 요청시 람다를 호출하도록 StructureMap을 구성하는 방법을 알아 내려고하고 있습니다. 비 개방형 제네릭 형식의 경우,이 같은 그것을 설정을 가지고 :
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>();
});
StructureMap에서 가능한가요? 여기 뭔가가 빠진 것처럼 느껴집니다 ...
당신이 제안한대로'IMongoDatabase'를 주입했습니다. 모든 메소드를 동일한'var collection = _mongoDatabase.GetCollection();으로 시작하는 것이 이상하게 보였습니다. 컬렉션을 삽입하는 것은 조금 이상합니다. –