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