2010-03-11 7 views
3

형식의 문자열 이름으로 StructureMap ObjectFactory에서 인스턴스를 요청할 수있는 방법이 있습니까? 예를 들어, 같은 것을 할 것이 좋을 것이다 :TypeMap에서 인스턴스 이름 가져 오기 이름

var thing = ObjectFactory.GetInstance("Thing"); 

여기에 사용 사례는 메시지가 매우 일반적이며, 작업의 이름을 포함하는 메시징 시나리오입니다. 핸들러는 메시지를 수신하고 메시지에서 태스크 이름을 가져 오며 연관된 태스크 러너의 유형 이름을 구성 데이터베이스에서 검색합니다. StructureMap은 디렉토리의 모든 어셈블리를 스캔하고 그 중 하나는 설정 데이터베이스에서 반환 된 유형 (아마도 인스턴스화해야 할 유형 포함)을 포함합니다.

다른 가능성은 수행하여 유형 인스턴스를 잡아 않습니다 :

var type = Type.GetType("Thing"); 

을 그러나 문제는 그 반사 호출이 항상되지 않도록 조립 또는/응용 프로그램 도메인에로드되지 않을 수있다 가능한.

+1

구조체가 어셈블리를 검색 한 경우 해당 어셈블리가 AppDomain에로드됩니다. Type.GetType()이 그것을 얻을 수 없으면, StructureMap은 그 중 하나를 수행 할 수 없습니다. –

답변

0

최근에 구조체 맵에서 스캔 된 어셈블리에서 올바르게로드했지만 형식 이벤트를 반환하지 않는 동일한 문제가 GetType이었습니다.

내 문제는 내가 어셈블리 정규화 된 이름을 사용하지 않았고 이것 없이는 현재 어셈블리에서 단순히 GetType 메서드를 찾습니다.

어쨌든 전체 이름을 추가하면 내 문제가 분류됩니다.

희망이 도움이됩니다.

이안