2010-05-07 4 views
5

IoC 컨테이너를 사용하도록 WCF 서비스를 설정하고 싶습니다. Autofac wiki에는 WCF 통합에 대한 기사가 있지만 IIS에서 호스팅되는 서비스와의 통합을 보여줍니다.Windows 서비스 (Autofac)에서 호스팅되는 WCF 서비스에 IoC 지원 추가

하지만 내 서비스는 Windows 서비스에서 호스팅됩니다. 여기

내가 조언을 따랐습니다 http://groups.google.com/group/autofac/browse_thread/thread/23eb7ff07d8bfa03

오프닝 이벤트를 연결하는 조언을 얻었다 이것은 내가 지금까지 무엇을 가지고 있습니다 :

private void RunService<T>() 
    { 
     var builder = new ContainerBuilder(); 

     builder.Register(c => new DataAccessAdapter("1")).As<IDataAccessAdapter>(); 

     ServiceHost serviceHost = new ServiceHost(typeof(T)); 

     serviceHost.Opening += (sender, args) => serviceHost.Description.Behaviors.Add(
      new AutofacDependencyInjectionServiceBehavior(builder.Build(), typeof(T), ???));      


     serviceHost.Open(); 
    } 

AutofacDependencyInjectionServiceBehavior는 소요의 ctor있다 3 매개 변수. 세 번째 유형은 IComponentRegistration이고 어디서 얻을 수 있는지 잘 모릅니다. 어떤 아이디어?

미리 감사드립니다.

답변

5

Self-Hosting WCF Services를 사용할 때 Autofac WCF 통합을 사용하는 방법을 설명하는 블로그 게시물을 작성했습니다.

http://alexmg.com/self-hosting-wcf-services-with-the-autofac-wcf-integration/

하는 것은 올바른 방향을 제시해주기에 충분합니다 그. 같은 예제를 포함하도록 Autofac wiki의 설명서를 업데이트 할 예정입니다.

+0

멋진데 !! 나는 그것을 밖으로 시도 tomorow. 대단히 감사합니다 !! – user137348

+0

정말 유용하고 유용한 게시물입니다. –

관련 문제