Bonjour à tous !
Je vous expose le problème auquel je suis actuellement confronté :
J'ai une application utilisant LinQ to Entities et exposant les données de la base sous forme de WCF (pour être consommés par la suite par une UI en Silverlight ...)
J'ai donc différents services WCF, chacun ayant une sémantique : un pour gérer tout ce qui a un rapport avec les projets, un autre pour les users, e t c .....
Je rencontre cependant un problème de compatibilité entre les différents ServicesReference qui me sont fournis par les WCF côté client.
J'ai réalisé une petite appli console de test et voici le cas concert :
Le fait est, les différents types exposés (user, project) sont en fait des types LinQtoEntities qui correspondent directement à des tables en base de données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 // je suis dans le test du service user //le client wcf pour le service en rapport avec les users UserServiceClient usc = new UserServiceClient(); // le client wcf pour le service en rapport avec les projets ProjectServiceClient psc= new ProjectServiceClient(); //je récupère un user, via le service gérant les users user myUser = usc.GetUser(1); // je récupère un projet, via le service gérant les projets ProjectServiceReference.project myTestProject = psc.GetProject(1); //j'essaie de faire comprendre à .NET que c'est le même objet UserServiceReference.project myTestProjectUser = (UserServiceReference.project)((Object) myTestProject); UserServiceReference.userRoleProject= usc.GetUserRoleProject(myUser,myTestProject);
De ce fait, un ProjectServiceReference.project et un UserServiceReference.project sont en fait équivalent car tous deux identiques côté serveurComment puis-je faire correspondre ces deux types côté client ? Le cast que j'ai tenté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // en théorie typeof(ProjectServiceReference.project) == typeof(UserServiceReference.project)ne fonctionnant pas. (tout comme le transtypage direct de A' vers A)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 A' monA'; A monA = (A)((Object) monA')
Merci d'avance,
/pfellmann
Partager