Par exemple, j'ai deux services hébergés dans IIS.Deux services WCF avec différents contrats mais les mêmes objets métier
[ServiceContract]
public interface IDeviceService
{
[OperationContract]
DeviceCollection GetAllDevices(Customer customer);
}
[ServiceContract]
public interface IUserService
{
[OperationContract]
User Authenticate(string username, string password);
}
deux l'objet utilisateur qui est renvoyée par l'opération Authentifier dans le UserService et la DeviceCollection qui est renvoyée par l'opération GetAllDevices dans le DeviceService ont une définition d'objet enfant du Client. Le client est un objet métier dans le même assemblage que les objets Utilisateur et Périphérique.
Mon problème est sur le client - quand je l'appelle le fonctionnement du dispositif
userProxy.GetAllDevices(user.Customer);
Le compilateur se plaint avec le message suivant:
Argument 1 - Impossible de convertir UserService.Customer à DeviceService.Customer
Je peux me connecter aux deux services très bien, c'est la définition d'objet du client qui est le problème. Je ne veux pas vraiment mettre les Opérations dans le même service qu'elles semblent vivre naturellement dans leurs propres services. Je suppose que ce que je demande est que comment d'autres programmeurs font face à un tel problème?
Cheers, Stuart
En outre, lorsque vous ajoutez la référence de service, vous souhaitez utiliser l'onglet Avancé pour spécifier les types à partager. –
Hiya, le problème avec la combinaison des deux services est qu'ils deviendront finalement massifs. J'ai lu dans le livre de Jual Lowrys que vous devriez vous efforcer d'avoir pas plus de 12 membres du contrat de service? – Simian
@Stuart - Je ne recommanderais pas de combiner des services simplement pour cette raison. Je crois que vos services sont séparés à dessein afin de les regrouper n'a pas toujours de sens. Je voulais juste m'assurer que vous étiez au courant de chaque option. –