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

C# Discussion :

Interface WCF derivee


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Par défaut Interface WCF derivee
    Bonjour,

    J'ai un objet de base dans mon interface WCF (datacontract). J'ai dérivé cet objet dans ma partie serveur. Seulement je n'arrive pas à repasser de mon objet dérivé à mon objet de base afin de respecter la méthode de mon contrat de service.
    Le cast provoque une erreur coté client !

    En fait je ne parviens pas à recréer simplement un instance de mon objet de base à partir de mon objet dérivé ...

    Si qqn a une petite idée, je l'en remercie

    A+

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par mimic50 Voir le message
    En fait je ne parviens pas à recréer simplement un instance de mon objet de base à partir de mon objet dérivé ...
    C'est déjà une instance de la classe de base... Si B hérite de A, une instance de B est également une instance de A.

    Si ça ne répond pas à ta question, essaie de donner plus de détails, et montre le code, parce que là c'est un peu flou...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Par défaut
    Je vais essayer de présenter mon problème ...

    En fait je crée une application Client/Serveur WCF.
    J'ai créé mon interface dans laquelle j'ai une classe A (DataContract), ainsi qu'une méthode GetData() qui retourne un objet de type A (OperationContract)

    Coté serveur, je crée une classe B dérivée de A qui contient propriétés et méthodes supplémentaires dont je souhaite visibilité uniquement coté serveur.

    Lors de l'appel de la méthode GetData, je ne paviens pas à caster mon objet B en objet A ...

    Si je fais uniquement :
    return (A)B
    j'obtiens une CommunicationException car B est inconnu de mon Iterface je pense ...

    J'espère avoir été plus clair.

    Merci

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par mimic50 Voir le message
    Si je fais uniquement :
    return (A)B
    j'obtiens une CommunicationException car B est inconnu de mon Iterface je pense ...
    Ca ne sert à rien de faire return (A)B, vu que de toutes façons B hérite de A. Il suffit de faire return B, ça revient au même.

    Montre le message et la InnerException de l'exception

    Citation Envoyé par mimic50 Voir le message
    J'espère avoir été plus clair.
    ce serait encore plus clair avec un peu de code

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Algérie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 59
    Par défaut Plus de details
    Bonjour,
    si tu as déclaré une instance de la classe b qui hérites de A le cast est implicite... pourquoi cherches tu un cast?

    Je dis ça comme ça (car j'ai pas tous les détails)...un bout de code (qui n'est pas obligatoirement celui que tu fais au boulot) qui présente une telle situation pourrait vraiment m'aider à y voir plus clair ... j'ai déjà travaillé avec WCF.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 203
    Par défaut
    A mon avis tu n'as pas besoin de faire un cast, si dans le contrat WCF la fonction GetData() retourne un A tu récupère un A coté client.
    La classe B n'est même pas connu du client, WCF sérialise automatiquement une classe A.

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Quand tu "balades" des objets dans WCF via des types de niveau supérieur, le process de serialisation doit connaître préalablement les types dérivés qui seront manipulés.

    Pour cela, utilise l'attribut KnownType.

    Pour plus de précision, poste du code, car tes explications ne sont pas vraiment limpides . Par exemple :

    J'ai créé mon interface dans laquelle j'ai une classe
    Une classe dans une interface ? t'es sur

Discussions similaires

  1. Interface WCF & méthodes.
    Par Heimerdi dans le forum C#
    Réponses: 0
    Dernier message: 07/11/2013, 11h13
  2. Accès à l'interface avec WCF
    Par Edenia dans le forum Windows Communication Foundation
    Réponses: 4
    Dernier message: 13/10/2010, 17h24
  3. Utilisation d'interfaces via les services WCF
    Par johnaliashead dans le forum Silverlight
    Réponses: 9
    Dernier message: 23/07/2010, 09h48
  4. Passer des Interfaces en [MessageContract]] WCF
    Par matdur dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 09/06/2008, 10h20
  5. Passer des Interfaces en [DataContract] WCF ?
    Par mamiberkof dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 09/01/2008, 18h27

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