En este post te voy a explicar como puedes usar Autofac para componer tus instancias de clientes de WebServices Wcf, en C# con .Net Framework.
Primeros Pasos.
Puedes clonar el repositorio GitHub completo del ejemplo aquí. Es un proyecto de Consola que se conecta a un servicio web público de pruebas Wcf y emplea Autofac para la creación del cliente.
¿Qué es Autofac?
Autofac es un contenedor de inversión de dependencias. Es un componente que te ayuda con la tarea de inyectar dependencias (véase los principios de SOLID) y componer objetos complejos.
¿Qué necesito para utilizar Autofac con Wcf?.
Para poder construir un cliente de web service Wcf es necesario que conozcas los ServiceContracts y los DataContracts que expone el servicio, puedes conocerlos si ya tienes un cliente proxy generado o si accedes al wsdl en caso de que sea público. Sin esta información no te será posible instancia un cliente.
Paso 0 – El DataContract y el ServiceContract.
Paso 1 – Componiendo el ClientChannelFactory.
Escribí un método de extensión para esta operación.
Paso 2 – Componiendo el ClientChannel.
También delegué esta responsabilidad a un método de extensión.
Paso 3 – Ejecutando el Cliente.
Cree una clase llamada WebServicePrinter para ejemplificar el uso de la inyección por constructor, el único propósito de la clase es invocar el método web y mostrar en pantalla el resultado.
¿Qué pasa con el estado de la conexión del Web Service?
Puedes usar el método BeginLifeTimeScope del contenedor para definir el periodo de vida del objeto con un bloque using. No es necesario abrir o cerrar conexiones (bueno, aparentemente).
Referencias: https://autofaccn.readthedocs.io/en/latest/integration/wcf.html
- NVL in SQL Server - 2023-11-01
- ¿Que es Cake Build? - 2023-02-22
- #How to fix error: MSB4019: The imported project «Microsoft.Data.Tools.Schema.SqlTasks.targets» was not found - 2023-02-20