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...