2011-06-09 12 views
7

Estoy tratando de concentrar mi atención en WCF y la Inyección de Dependencias es un punto que me confunde un poco.Inyección de dependencias en los servicios de WCF

Mi pregunta es básicamente: ¿WCF es compatible con Dependency Injection, o uno tiene que confiar en algún marco externo para eso?

Si hay una manera de hacer esto usando nada más que WCF, ¿podría darme un enlace a un ejemplo simple?

+1

posible duplicado de [¿Cómo paso valores al constructor en mi servicio wcf?] (Http://stackoverflow.com/questions/2454850/how-do-i-pass-values-to-the-constructor- servicio on-my-wcf) –

Respuesta

7

Consulte blog post por Jimmy Bogard para conectar StructureMap en los puntos de integración de WCF que le permiten no tener constructores de servicios sin constructor. Sé que está buscando un Marco no DI, por lo que si utiliza los enfoques proporcionados en los enlaces del comentario de Peter K a su respuesta y combina el contenedor DI roll-you-own con los puntos de integración de WCF con IInstanceProvider y IServiceBehavior como descrito por Jimmy, deberías tener una solución DI para WCF que no utiliza un marco DI de terceros.

Definitivamente no es un ejercicio de 5 minutos y requerirá un poco de código, pero espero que esto ayude. Avíseme si tiene alguna pregunta y actualizaré esta respuesta. ¡Buena suerte!

1

WCF no dice nada acerca de la inyección de dependencia como tal. Por lo general, debe utilizar un marco como Unity o StructureMap o Ninject o Castle Windsor para hacerlo.

Hay otros mensajes aquí about how to do it.

+1

No necesita un marco DI para hacer la inyección de dependencia. Sin embargo, pueden ser útiles ;-) – Steven

+0

:-) Es cierto. Estaba leyendo [esto] (http://kenegozi.com/blog/2008/01/17/its-my-turn-to-build-an-ioc-container-in-15-minutes-and-33- líneas) y [esto] (http://ayende.com/blog/2886/building-an-ioc-container-in-15-lines-of-code). ¿¡¿Qué tan difícil puede ser?!? :-) –

+1

Después de compilar uno durante un año, puedo concluir que en realidad es muy fácil ;-) – Steven

1

Tengo soporte para la inyección de dependencia WCF para Unity en mi Toolkit - http://neovolve.codeplex.com/releases/view/19004. La documentación en el paquete muestra cómo conectarlo. Al ser de código abierto, puede modificarlo para aprovechar cualquier contenedor de IOC que utilice si no es Unity.

Cuestiones relacionadas