IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Discussion :

reference ambigue entre services


Sujet :

Services Web

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut reference ambigue entre services
    Bonjour

    Je cherche a résoudre un probleme de reference ambigue d'une classe utilisée par deux services

    Au niveau serveur Cette classe est définie dans un projet datacontrat regroupant les interfaces des deux services
    J'ai la methode A du service S1 qui rends une classe de type C
    J'ai la methode B du service S2 qui rends AUSSI une classe de type C

    Le problème est au niveau client,

    Lorsque je cree un client qui consomme les deux services je ne parviens pas a lui faire comprendre que la classe C est la meme

    Quelle serait la bonne tactique ?
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    J'avoue n'avoir jamais eu ce cas, mais il est logique que lorsque sur le client les deux proxy sont générés, il n'y a pas moyen de savoir que le type C est commun aux deux proxy.

    Par contre, si tu utilses une interface pour la classe C, cela devrait aller mieux non ?

    Une autre solution, un peu génante, est de modifier les proxy en extrayant la définition de la classe C. Là au moins tu es sûr que ça fonctionne, mais il est vrai que ce n'est pas très recommandé.

    Si quelqu'un a une autre solution, ça m'intéresse ausi !

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Une autre solution, un peu génante, est de modifier les proxy en extrayant la définition de la classe C. Là au moins tu es sûr que ça fonctionne, mais il est vrai que ce n'est pas très recommandé
    Salut Nicolas

    Il me semble que cette solution sera celle a envisager car si personnellement je fais mes test client avec VS il n'est pas impossible (et meme probable) que ces services seront consommés en PHP principalement
    Dans ce cas il est clair que la generation des proxy sera plus "manuelle" que le "all in the box" magique the VS

    Cependant, ta suggestion d'interface m'intéresse mais me laisse un peu perplexe.
    Tu la définirait ou cette interface ?
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 436
    Points : 963
    Points
    963
    Par défaut
    Bonjour, je détère ce sujet car je suis tombé dessus via google donc d'autre tomberont aussi.

    J'ai ce même problème.

    Par exemple, j'ai un service facturation, un service manipulation.

    Ces deux services contiennent des références à l'entity Client.

    Lorsque je fais serviceManipulation.Add(monClient); j'ai une erreur "ambiguité entre deux classes client blablabla" car monClient est un objet valorisé par le service facturation.

    Je n'ai pas trouvé d'autre moyen que de regrouper mes deux services en 1. Et je trouve cela très désagréable et lourd car chaque service fait dans les 800 lignes de codes ormis commentaires.

    J'espère que vous allez recevoir une notif mail et venir répondre :p

    Car si vous avez trouvez une solution je suis preneur ! C'est très lourd de faire une classe Convertisseur qui prend un objet client de type servFactu en param et restitue un servManip.Client :s
    "S'adapter, c'est vaincre" - Cellendhyll de Cortavar

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par Kikuts Voir le message
    Bonjour, je détère ce sujet car je suis tombé dessus via google donc d'autre tomberont aussi.

    J'ai ce même problème.

    Par exemple, j'ai un service facturation, un service manipulation.

    Ces deux services contiennent des références à l'entity Client.

    Lorsque je fais serviceManipulation.Add(monClient); j'ai une erreur "ambiguité entre deux classes client blablabla" car monClient est un objet valorisé par le service facturation.

    Je n'ai pas trouvé d'autre moyen que de regrouper mes deux services en 1. Et je trouve cela très désagréable et lourd car chaque service fait dans les 800 lignes de codes ormis commentaires.

    J'espère que vous allez recevoir une notif mail et venir répondre :p

    Car si vous avez trouvez une solution je suis preneur ! C'est très lourd de faire une classe Convertisseur qui prend un objet client de type servFactu en param et restitue un servManip.Client :s
    Astuce simple: Il faut que toutes les entités soient dans la même Assembly(appellons la ContractEntities). Cette Assembly doit être référencée côté client et côté seveur. Ainsi, en ajoutant la référence de service, il faut veiller à ce que la case "Reuse types in all referenced assemblies" dans les options avancées.

Discussions similaires

  1. Différence entre Service References & Web References ?
    Par xpander dans le forum Services Web
    Réponses: 2
    Dernier message: 19/10/2011, 14h39
  2. Différence entre Service et Programme
    Par Chatbour dans le forum Windows
    Réponses: 4
    Dernier message: 20/08/2007, 13h24
  3. CreateFileMapping entre service et processus
    Par matdur dans le forum Windows
    Réponses: 1
    Dernier message: 30/07/2007, 21h47
  4. [sql serveur 2k] choix entre services pack
    Par poosh dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/06/2006, 11h52
  5. [C#] References : difference entre net et com
    Par cedgov dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/11/2004, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo