Ad esempio, in IIS sono presenti due servizi.Due servizi WCF con contratti diversi ma stessi oggetti business
[ServiceContract]
public interface IDeviceService
{
[OperationContract]
DeviceCollection GetAllDevices(Customer customer);
}
[ServiceContract]
public interface IUserService
{
[OperationContract]
User Authenticate(string username, string password);
}
Sia l'oggetto d'uso che viene restituito dall'operazione autenticazione nel UserService e la DeviceCollection che viene restituito dall'operazione GetAllDevices nel DeviceService hanno una definizione di oggetto figlio del Cliente. Il cliente è un oggetto business che si trova nello stesso assieme degli oggetti User e Device.
Il mio problema è sul client - quando chiamo il funzionamento del dispositivo
userProxy.GetAllDevices(user.Customer);
Il compilatore si lamenta con il seguente messaggio:
Argomento 1 - Non è possibile convertire da UserService.Customer a DeviceService.Customer
Posso connettermi a entrambi i servizi bene, è la definizione dell'oggetto del Cliente che è il problema. Non voglio davvero mettere le operazioni nello stesso servizio che sembrano vivere in modo naturale nei loro servizi. Immagino che quello che sto chiedendo sia come gli altri programmatori si occupano di un simile problema?
Cheers, Stuart
Inoltre, quando si aggiunge il riferimento al servizio, si desidera utilizzare la scheda Avanzate per specificare quali tipi devono essere condivisi. –
Hiya, il problema con la combinazione dei due servizi è che alla fine diventeranno enormi. Ho letto nel libro di Jual Lowrys che dovresti sforzarti di non avere più 12 membri del contratto di servizio? – Simian
@Stuart - Non consiglierei di combinare i servizi semplicemente per questo motivo. Confido che i tuoi servizi siano separati di proposito, quindi non è sempre logico metterli insieme. Volevo solo assicurarmi che tu fossi consapevole di ogni opzione. –