2008-12-29 9 views
12

¿Se puede realizar el tiempo de ejecución WCF para crear una instancia de un servicio a través de un contenedor IoC en lugar de a través de su proceso habitual? (Además, dado un posible choque entre la configuración de estilo de vida del contenedor para el tipo y el InstanceContextBehavior del servicio, ¿sería este enfoque una idea terrible?)Creación de instancias del servicio WCF a través del contenedor IoC

Soy consciente de que podría estar haciendo la pregunta incorrecta por completo. Mi objetivo es un enfoque AOP a través de las facilidades de interceptación de métodos proporcionadas por el contenedor (por ejemplo, método de entrada/salida de registro, perfuncionamiento y aceleración de llamadas, todas ellas con lógica y dependencias que no quiero insertar en la implementación de mi servicio). Me imagino que WCF ofrece otras formas de abordar esto, por lo que también me gustaría escuchar otros enfoques recomendados.

Respuesta

3

Sí, heres implementaciones que utilizan tanto ObjectBuilder y Spring.NET (y más si se siguen los enlaces!):

http://www.infoq.com/news/2008/01/wcf-di

no puedo comentar sobre el estilo de vida y la interacción comportamiento contexto instancia sin embargo.

En cuanto a más enfoques específicos de WCF, aprovechar el concepto de comportamientos de WCF (como lo hace el ejemplo anterior) también puede ser útil. Hay varios tipos diferentes, aquí hay un punto de partida:

http://mehranikoo.net/CS/archive/2007/02/22/WCFBehaviours.aspx

Saludos,
Matt

+0

No sé qué tan bueno es el soporte de Spring, pero no desea utilizar ObjectBuilder a menos que tenga una buena razón para hacerlo. Otras herramientas son simplemente mucho más poderosas. –

+0

El segundo enlace ha ido mal. –

8

Respuesta corta - Sí, puede.

Por favor, eche un vistazo a la integración de Castle WCF. Le permite usar Castle Windsor para WCF, lo que le da capacidades mucho más poderosas que simplemente inyectar dependencias. Lo mejor es utilizar la versión troncal found here. No hay mucha documentación sobre esto, pero eche un vistazo a las pruebas. Son fáciles de seguir y serán un buen código de muestra para usted. instalación de WCF, haga exactamente ese tipo de preguntas sobre las que pregunta.

+0

El enlace está roto. –

Cuestiones relacionadas