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 :

Deserialisation d'une interface


Sujet :

C#

  1. #1
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut Deserialisation d'une interface
    Bonjour,

    je me confronte à un probleme qui vous semblera surement trivial. Comme le souligne le titre , je m'interesse à la deserialisation de rest web services.

    Voici ma classe RestReturn qui me permet de retrouver moes objets :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     [Serializable]
        [System.Xml.Serialization.XmlRoot("restReturn")]
        public class RestReturn
        {
            private int _Success;
            private int _ErrorCode;
            private string _ErrorMessage;
            private IAccountingRestClass _EntityToReturn;
     
     
            [System.Xml.Serialization.XmlElement("success")]
            public int Success
            {
                get { return _Success; }
                set { _Success = value; }
            }
     
            [System.Xml.Serialization.XmlElement("errorCode")]
            public int ErrorCode
            {
                get { return _ErrorCode; }
                set { _ErrorCode = value; }
            }
     
            [System.Xml.Serialization.XmlElement("errorMessage")]
            public string ErrorMessage
            {
                get { return _ErrorMessage; }
                set { _ErrorMessage = value; }
            }
     
            [System.Xml.Serialization.XmlAnyElement()]
            public IAccountingRestClass EntityToReturn
            {
                get { return _EntityToReturn; }
                set { _EntityToReturn = value; }
            }
     
            public IAccountingRestClass getResponseEntity()
            {
                return _EntityToReturn;
            }
     
         }
    Comme vous pouvez le voir j'utilise à un moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     [System.Xml.SerializationXmlAnyElement()]
            public IAccountingRestClass EntityToReturn
            {
                get { return _EntityToReturn; }
                set { _EntityToReturn = value; }
            }
    IAccountingRestClass est une interface qui regroupe tous les objets que je peux obtenir depuis mon systeme accounting. Je pensais que le systeme de deserialization serait capable de retrovuer ses petits mais j'ai l'impression d'êrte passé à coté de quelque chose.


    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
    18
    19
    20
    public static RestReturn DeSerialize(string _strXML)
            {
     
                if (_strXML != null)
                {
                    byte[] arData = System.Text.Encoding.UTF8.GetBytes(_strXML);
                    using (System.IO.MemoryStream ms = new System.IO.MemoryStream(arData.Length))
                    {
                        ms.Write(arData, 0, arData.Length);
                        System.Xml.Serialization.XmlSerializer serialiser = new System.Xml.Serialization.XmlSerializer(typeof(RestReturn ));
                        ms.Seek(0, System.IO.SeekOrigin.Begin);
                        object obj = serialiser.Deserialize(ms);
                        if (obj is RestReturn)
                            return obj as RestReturn;
                        else
                            return null;
                    }
                }
                return null;
            }
    j ai une erreur à cet endroit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     System.Xml.Serialization.XmlSerializer serialiser = new System.Xml.Serialization.XmlSerializer(typeof(RestReturn ));
    Erreur de reflection ou quelque chose du genre..


    Merci d'avance de votre aide et de vos idées de génie...

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Au lieu d'utiliser une interface de base essaye d'en faire une classe de base sans oublier de mettre l'attribut [Serializable] et tout et tout.

Discussions similaires

  1. Comment faire une interface de ce type....
    Par SpiderAlpha dans le forum C++Builder
    Réponses: 6
    Dernier message: 30/04/2007, 13h50
  2. Tableau dans une interface idl
    Par Polochon2001 dans le forum CORBA
    Réponses: 2
    Dernier message: 14/05/2004, 09h44
  3. [Débutant] Lancer une interface sous éclipse
    Par bonnefr dans le forum SWT/JFace
    Réponses: 11
    Dernier message: 11/05/2004, 15h59
  4. Comment créé une "interface" pour mes programmes??
    Par alcazar dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 09/02/2004, 13h02
  5. portabilité d'une interface
    Par marou dans le forum JBuilder
    Réponses: 4
    Dernier message: 21/03/2003, 08h53

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