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 :

Downcast pour transmission WCF


Sujet :

C#

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Points : 57
    Points
    57
    Par défaut Downcast pour transmission WCF
    Bonjour,

    Je pense être confronté à un léger problème de conception que je n'arrive pas à contourner ...

    J'ai une classe A avec différents attributs qui est déclarée dans mon interface WCF.
    J'ai une classe B qui dérive de A coté serveur. Cette classe à un constructeur particulier qui me permet d'initialiser les attributs de A.
    Seulement, lors de l'éxécution de mon contrat WCF (envoi d'un objet A), je ne parviens pas à "downcaster" mon objet B vers A !! Ce qui entraine une erreur coté client ...

    Je recherche donc une solution afin de pouvoir exposer un objet de base qui est ensuite dérivé coté serveur pour traitement.
    Est-ce la bonne solution que j'utilise ?

    Merci de vos réponses.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Salut,

    As tu jetté un coup d'oeil du coté de l'attribut KnownType ?

    http://msdn.microsoft.com/en-us/library/ms730167.aspx

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Points : 57
    Points
    57
    Par défaut
    Cette solution de décoration marche effectivement pour permettre de transporter des types dérivés du DataContract de base.

    En revanche, elle n'est pas souple car elle crée des dépendances entre la classe de base et les classes dérivées : pour chaque nouvelle classe dérivée , il faudra ajouter un nouvel attribut KnowType.

    Je souhaite donc pouvoir obtenir un objet de la classe de base depuis un objet de la classe dérivée.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Salut,

    J'ai bien peur alors qu'il n'y ait pas de solutions dans ce cas. J'image que dans ton contrat WCF tu références la classe de base. Lors de l'envoi de la requête, le serializer de WCF n'envoi pas vraiment les objets, mais des représentations XML. Ce fonctionnement n'est donc pas compatible avec le polymorphisme d'objets.

Discussions similaires

  1. upload/download pour un WCF(4.0) heberge sur IIS
    Par 3logy dans le forum Windows Communication Foundation
    Réponses: 4
    Dernier message: 03/06/2011, 19h53
  2. profiler pour service WCF IIS-hosted
    Par micky3248 dans le forum Services Web
    Réponses: 1
    Dernier message: 25/06/2009, 10h59
  3. nombre de Threads pour un WCF sur IIS
    Par micky3248 dans le forum IIS
    Réponses: 3
    Dernier message: 25/06/2009, 10h43
  4. sockets probleme pour transmissions de donnée
    Par sebatlante dans le forum Réseau
    Réponses: 11
    Dernier message: 23/08/2007, 12h02
  5. Réponses: 2
    Dernier message: 01/08/2005, 16h55

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