Ajouter un commentaire

kmerlin
Problème de déserialisation XML sur pocket PC

Salut,

Je tente de désérialiser le contenu d'un flux xml provenant d'un service NT à partir d'une application mobile, mais le résultat est l'exception suivante :

System.InvalidOperationException
Message : "There is an error in XML document (42, 6)."
System.ArgumentException
InnerException : "DataTable 'http://tempuri.org/UHTSet.xsd:GetBatch' does not match to any DataTable in source."

J'ai comparer la sérialisation d'un même objet à partir du framework et du compact framework, et les résultat sont différent!!! Y à t'il une solution pour partager des contenus xml entre les deux framework?

Voici la classe que j'utilise dans les deux cas.

    public class IsServiceStream
    {
        DataTable tableStream;
        public DataTable TableStream
        {
            get { return tableStream; }
            set { tableStream = value; }
        }

        int tag;
        public int Tag
        {
            get { return tag; }
            set { tag = value; }
        }

        public IsServiceStream()
        {
            tableStream = null;
            tag = 0;
        }

        public byte[] GetBuffer()
        {
            MemoryStream stm = new MemoryStream();
            StreamWriter wr = new StreamWriter(stm, System.Text.Encoding.UTF8);
            XmlSerializer xs = new XmlSerializer(typeof(IsServiceStream));
            XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
            ns.Add("", "");
            xs.Serialize(wr, this, ns);

            return stm.GetBuffer();
        }

        public static IsServiceStream FromBuffer(byte[] buf)
        {
            MemoryStream stm = new MemoryStream(buf);
            StreamReader wr = new StreamReader(stm, System.Text.Encoding.UTF8);
            XmlSerializer xs = new XmlSerializer(typeof(IsServiceStream));
            IsServiceStream tmp = (IsServiceStream)xs.Deserialize(wr);
            return tmp;
        }

        public IsServiceStream Clone()
        {
            IsServiceStream newStream = new IsServiceStream();
            newStream.tableStream = tableStream.Clone();
            newStream.tag = tag;
            return newStream;
        }
    }

Le résultat XML du framework windows:

<?xml version="1.0" encoding="utf-8"?>










































70249
070249
2007-09-07T09:48:35+02:00
2007-02-19T18:45:21+01:00
Mitchmilk 0 BK SR 1 L
202101
2007-02-19T09:48:35+01:00


70273
070273
2007-08-22T10:11:06+02:00
2007-02-23T13:04:17+01:00
FELAIT 15 BK SR 1 L
201142
2007-02-23T10:11:06+01:00


70284
070284
2007-08-24T08:12:46+02:00
2007-02-25T15:32:44+01:00
LONG LIFE 15 BK SR 1L
201075
2007-02-25T08:12:46+01:00




1

Le résultat du compact framework :

<?xml version="1.0" encoding="utf-8"?>










































0
lot
2007-08-21T10:53:35+02:00
2007-08-21T10:53:35+02:00
label
0
2007-08-21T10:53:35+02:00




0

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
  QQQ     AA   BBBB   K  K   SSS  
Q Q A A B B K K S
Q Q AAAA BBBB KK SSS
Q QQ A A B B K K S
QQQQ A A BBBB K K SSSS
Q