Por ejemplo, tengo dos servicios alojados en IIS.Dos servicios WCF con diferentes contratos pero los mismos objetos comerciales
[ServiceContract]
public interface IDeviceService
{
[OperationContract]
DeviceCollection GetAllDevices(Customer customer);
}
[ServiceContract]
public interface IUserService
{
[OperationContract]
User Authenticate(string username, string password);
}
Tanto el objeto Usuario que se devuelve desde la operación Autenticar en el UserService y la DeviceCollection que se devuelve desde la operación GetAllDevices en el DeviceService tienen una definición de objeto hijo del cliente. El cliente es un objeto comercial que está en el mismo ensamblaje que los objetos Usuario y Dispositivo.
Mi problema es en el cliente - cuando llamo al funcionamiento del dispositivo
userProxy.GetAllDevices(user.Customer);
El compilador se queja con el siguiente mensaje:
Argumento 1 - No se puede convertir de UserService.Customer a DeviceService.Customer
Me puedo conectar a ambos servicios bien, es la definición del objeto del cliente que es el problema. Realmente no quiero poner las Operaciones en el mismo servicio ya que parecen vivir naturalmente en sus propios servicios. Supongo que lo que estoy preguntando es cómo otros programadores lidian con ese problema.
Saludos, Stuart
Además, cuando agrega la referencia del servicio, desea usar la pestaña Avanzado para especificar qué tipos se deben compartir. –
Hola, el problema con la combinación de los dos servicios es que eventualmente se volverán masivos. He leído en el libro de Jual Lowrys que debe esforzarse por no tener más de 12 miembros del contrato de servicio. – Simian
@Stuart - No recomendaría combinar servicios simplemente por este motivo. Confío en que sus servicios estén separados a propósito, por lo que mezclarlos no siempre tiene sentido. Solo quería asegurarme de que conocieras todas las opciones. –