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

