개방형 제네릭 유형 MongoCollection<>
의 인스턴스를 생성하기위한 팩토리 메서드를 등록하려고합니다. 그러나 내가 GetInstance
때 그것은 공장 메서드 대신 MongoCollection의 생성자를 사용하는 것으로 나타납니다. 나는 그것이 팩토리 메소드 내부에 중단 점을 명중 결코 GetInstance
줄을 실행할 때StructureMap 인스턴스 팩토리 메서드
var mongo = new MongoConfiguration("mongodb://localhost", "test");
For(typeof (MongoCollection<>)).Use(c =>
{
var requestedType = c.BuildStack.Current.RequestedType; // set breakpoint here
var type = requestedType.GetGenericArguments()[0];
return mongo.GetCollection(type);
});
은 그 때 나는
ObjectFactory.GetInstance<MongoCollection<User>>();
을하지만, 어떤 기본 인스턴스가 PluginFamily MongoDb.Driver에 대해 정의 "라는
StructureMapException
가 발생합니다. MongoServerSettings ". 에 대해
MongoServerSettings
을 사용하는 생성자가 있지만 구조체 맵에서 해당 생성자를 사용하고 싶지 않습니다. 내 공장 메서드를 사용하고 싶습니다.
팩토리 방식을 사용하지 않는 이유는 무엇입니까? 이거 버그 야?
시도해 보셨습니까 (typeof (MongoCollection)). (...); ? –
Rookian
@Rookian도 그렇게 보입니다. 그냥 일반 제네릭을위한 것이 아니라고 생각해 ... – kelloti
흠 나는 문자열을 단순한 목록으로 시도했다. – Rookian