2010-05-07 23 views
5

Me gustaría configurar mis servicios WCF para usar un contenedor IoC. Hay un artículo en el wiki de Autofac sobre la integración de WCF, pero muestra solo una integración con un servicio alojado en IIS.Agregar soporte IoC a mi servicio WCF alojado en un servicio de Windows (Autofac)

Pero mis servicios se alojan en un servicio de Windows.

Aquí me dieron un consejo para conectar el evento de apertura http://groups.google.com/group/autofac/browse_thread/thread/23eb7ff07d8bfa03

He seguido el consejo y esto es lo que tengo hasta ahora:

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(); 
    } 

El AutofacDependencyInjectionServiceBehavior tiene una ctor que toma 3 parámetros. El tercero es del tipo IComponentRegistration y no tengo idea de dónde puedo obtenerlo. Algunas ideas ?

Gracias de antemano.

Respuesta

5

He escrito una publicación de blog que describe cómo usar la integración de Autofac WCF cuando se aloja en los servicios de WCF.

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

Eso debería ser suficiente para señalarle en la dirección correcta. Voy a actualizar la documentación en la wiki de Autofac para incluir el mismo ejemplo.

+0

Luce increíble !! Voy a probarlo mañana. ¡¡Muchas gracias!! – user137348

+0

Publicación realmente buena y útil. –

Cuestiones relacionadas