Estamos utilizando WCF para la comunicación entre un cliente y una aplicación de servidor. La aplicación cliente tiene muchas características que requieren comunicación con el servidor, y hemos decidido implementar esto en múltiples clases (separación de responsabilidades)Servicio WCF que devuelve otro servicio (¿fábrica de servicio?)
Por el momento, estamos creando nuevos puntos finales WCF y contratos de servicio para cada objeto - Facturación , Contabilidad, Gestión de contenido, etc. Esto provoca una gran cantidad de configuración de punto final tanto en el cliente como en el servidor (con posibles problemas de configuración incorrecta al pasar a las plataformas de prueba y producción).
Me gustaría saber si puedo definir un solo punto final WCF que pueda ofrecer múltiples implementaciones de contacto de servicio. Nuestros archivos de configuración contendrían un solo punto final (para la fábrica de servicios) y puedo solicitar diferentes servicios especificando la interfaz del servicio en el que estoy interesado.
p.
using (IServiceClientFactory serviceClientFactory = new RealProxyServiceClientFactory())
{
// This is normal WCF proxy object creation.
IServiceFactory serviceFactory = serviceClientFactory.CreateInstance<IServiceFactory>("");
// This is what we would like to do
IInvoiceService invoiceService = serviceFactory.getService(typeof(IInvoiceService));
invoiceService.executeOperation(data);
}
La idea de ser una sola configuración de extremo por par cliente/servidor, en lugar de una configuración de punto final por contacto de servicio me gustaría poner a disposición.
¿Esto es posible?
Gracias por la respuesta.Serializar el servicio no es una solución, los métodos en el servicio deben manejarse en el servidor. Los parámetros deben ser serializables, pero el método en sí debe ejecutarse en el servidor. Encontré un documento sobre ServiceContracts con un SessionMode que estoy probando ahora. – Thies
Nunca sugerí serializar un servicio. La serialización Xml es lo que hace que WCF funcione. Es responsable de tomar sus objetos y traducirlos a Xml y viceversa. El objetivo de mi respuesta es explicarle que envolver sus solicitudes de servicio y respuestas puede ser una solución a su problema. –