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

Windows Communication Foundation .NET Discussion :

WCF et envoi d'objet


Sujet :

Windows Communication Foundation .NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Points : 30
    Points
    30
    Par défaut WCF et envoi d'objet
    Bonjour,

    J'utilise wcf avec le framework 3. C'est mon server qui notifie le client (après connection de celui ci). Ainsi j'ai les contrats suivant :

    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
     
        [ServiceContract]
        public interface IClient
        {
            [OperationContract]
            void ReceiveObject(Object Message);
        }
     
        [ServiceContract(CallbackContract = typeof(IClient))]
        public interface IServeur
        {
            [OperationContract]
            bool Login(string name, string password);
     
            [OperationContract]
            bool Say(string texte);
        }
    ReceiveObject est une méthode d'envoi d'objets depuis le server vers le client.

    Quand j'envoi un type simple (string ou int), il n'y a pas de problème, le server sait comment le sérializer. Parcontre si j'essaie d'envoyer mon propre type, l'application plante car elle ne sait pas comment sérializer l'objet (normal!).

    Je ne veux pas passer par un datacontract car je vais ajouter (compilation et ajout dynamique d'assembly) de nouvelles classes.

    En cherchant j'ai trouvé quelque truc sur les attribut KnownTypeAttribute serialize mais je n'ai pas réussit à aller plus loin.

    Donc : comment faire pour envoyer son propre type d'objet sans utiliser explicitement de datacontract ? ?

    Si quelqu'un a une idée je suis preneur !

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Points : 30
    Points
    30
    Par défaut
    Up, personne n'a une petite idée à partager?

  3. #3
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Peut-tu re-spécifier pourquoi tu ne veux pas utiliser de datacontract ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Points : 30
    Points
    30
    Par défaut
    Peut-tu re-spécifier pourquoi tu ne veux pas utiliser de datacontract ?
    Donc je veux pouvoir envoyer des objets du server vers le client. Par contre je ne connais pas à la compilation le type des objets que je vais envoyer (les classes sont compilées et ajoutées à la volée). Donc je pense qu'avec un datacontract ce n'est pas possible car, je pense, que l'on lorsque je recompile mes nouveaux type je ne peux pas les ajouter au contrat précédent. Est ce que je suis clair ?

    Donc peut eter que l'on peut faier cela avec des datacontract, je me suis peut etre planté en disant que non...

  5. #5
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Si tu (niveau serveur) ne connais pas le type d'objet envoyé, comment le client peut-il le savoir (et ainsi les utiliser) ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Points : 30
    Points
    30
    Par défaut
    J'avais penser envoyer l'assembly correspondant au client pour qu'il puisse faire un minimum de réflexion dessus. Ca pourrait donner un échange de ce genre:

    1- lancement des applis cliente et server
    2- compilation des nouveaux type coté server => création d'une dll
    3- chargement de la dll coté server
    4- déploiement de la dll coté client (avec soi un échange via le réso du serveur vers le client, soi le fichier est carrément posé à la main)
    5- création d'un nouvel objet coté serveur
    6- envoi de l'objet
    7- réception de l'objet
    8- utilisation par réflexion coté client (pour l'instant ej ne veux afficher que les propriétés du nouvel objet et leur valeur)

    Voila...

Discussions similaires

  1. [WCF & LinqToSql] transfer d'objet problématique
    Par anthyme dans le forum Windows Communication Foundation
    Réponses: 4
    Dernier message: 09/06/2008, 17h53
  2. Envoi d'objet par réseau
    Par SAKDOSS dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 06/01/2008, 23h12
  3. Envoi d'objet serializable entre client serveur
    Par the_frette dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 11/12/2007, 11h23
  4. [IdTcpServer]Envoi d'objet ou record avec Stream
    Par davels dans le forum Web & réseau
    Réponses: 10
    Dernier message: 04/09/2007, 12h56
  5. [socket] envoie d'objet
    Par soad dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 08/02/2006, 20h46

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