2011-10-15 1 views
0

정적 인 ServiceManager를 사용하여 여러 서비스를 제공하는 종속성이 있습니다. 또한 사용 가능한 유형 목록을 제공합니다.Autofac을 사용하여 정적 팩터 리가 수출 한 유형을 제공합니다.

Type[] ServiceManager.GetServiceTypes(); 
object GetService(Type t); 

Autofac 모듈에서 이러한 유형을 열거하고 '동적 인스턴스화'를 등록하고 싶습니다. 인스턴스가 요청 될 때마다 ServiceManager.GetService를 호출하는 것이 중요합니다.

답변

0

나는 내 자신의 RegistrationBuilder를 사용하여 끝내었지만, 꽤 펑키 한 것처럼 보이지만 작동합니다. 나는 명백한 속임수를 놓쳤는가?

 foreach (var type in ServiceManager.GetServiceTypes()) 
     { 
      var rb = RegistrationBuilder.ForDelegate(
       type, 
       (ctx, parms) => ServiceManager.GetService(type)) 
       .ExternallyOwned(); 

      builder.RegisterCallback(
       cr => RegistrationBuilder.RegisterSingleComponent(cr, rb)); 
     } 
관련 문제