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 :

WCF entityframework serialisation


Sujet :

Services Web

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 52
    Points : 53
    Points
    53
    Par défaut WCF entityframework serialisation
    Bonjour,

    Je débute sur les Web service WCF.

    Je vous explique j'ai développé un webservice qui doit retourné des type List<T> mais j'ai un problème de sérialization je pense.

    Coté service:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        [ServiceBehavior]
        public class ServiceDomus : IServiceDomi
        {
            private DOMUSEntities DomiContext;
     
            #region IServiceDomi Membres
            public List<MOE> GetListMOE()
            {
                this.DomiContext = new DOMIEntities();
                return  this.DomiContext.MOE.OrderBy(p => p.Name).ToList();
            }
     
    etc...
    Mes objets (MOE) sont référencé dans BusinessObject.dll externe au projet.

    Interface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
        [ServiceContract]
        public interface IServiceDomus
        {
            [OperationContract]
            List<MOE> GetListMOE();
    etc..
     
    }
    De plus quand je fais le test client WCF, il me dit que mon opération GetListMOE n'est pas pris en compte car elle utilise BusinessObject.MOE

    Une idée?

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 52
    Points : 53
    Points
    53
    Par défaut
    Bon le problème ne vient pas de la sérialisation car elle fonctionne bien quand je fais appel a un objet MOE.

    Le problème se situe plus au niveau du buffer de donnée je pense.

    En effet il plante lorsque je veux transferer une liste de mon entitée, mais pour un seul ca marche bien.

    Mon objet MOE contient un sous objet systeme technique.

    et pour certain MOE, j'ai plus d'une centaine de sous objet system technique, d'ou un plantage lors du return.

    Je continue d'analyser

  3. #3
    Invité
    Invité(e)
    Par défaut
    Si le problème vient du fait qu'il y a trop d'élément dans ta liste (ton graph d'entité) alors il faut modifier le paramètre maxitemsInObjectGraph comme suit en créant un behavior :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <behaviors>
      <serviceBehaviors>
        <behavior name="monBehavior">
          <dataContractSerializer maxItemsInObjectGraph="mets ce que tu veux ici"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    Et si tu mets un ICollection<> à la place te ta List<> dans le contract?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par chrisdot Voir le message
    Et si tu mets un ICollection<> à la place te ta List<> dans le contract?
    ICollection ou List<>, WCF s'en fout parce que toute collection sera transformée en type soap:array si je ne me trompe pas.

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    ICollection ou List<>, WCF s'en fout parce que toute collection sera transformée en type soap:array si je ne me trompe pas.
    On peut dans les options de la référence de service choisir le type de données qu'on veux, array, IList, Collection... a vérifier donc

    Ci joint un petit screen
    Images attachées Images attachées  
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par alexxxx69 Voir le message
    On peut dans les options de la référence de service choisir le type de données qu'on veux, array, IList, Collection... a vérifier donc
    Ce que tu montres dans ta capture d'écran c'est unqiuement dire au proxy qui sera généré de traiter les types soap:array en les remplaçant par le type que tu auras définis. Sauf qu'au moment de la sérialisation pour envoyer les données ce n'est pas le type choisi qui transitera avec une quelconque donnée qui indiquera qu'il s'agit d'une List<T> ou tout autre type propre à .Net mais il sera sérialisé en un type soap:array qui lui est standard et indépendant de la technologie.

Discussions similaires

  1. WCF, Entityframework, et MVC3
    Par alexxxx69 dans le forum Services Web
    Réponses: 2
    Dernier message: 14/03/2012, 20h02
  2. [WCF] Serialisation Attribut
    Par dkmix dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 06/01/2011, 15h46
  3. WCF probléme avec la serialisation de ObservableCollection
    Par amandinerenard dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 13/03/2008, 00h45
  4. [VB6]Sérialiser un objet
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 11/10/2003, 10h05
  5. Serialiser de gros documents XML
    Par philemon_siclone dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 17/09/2003, 15h26

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