Mam trochę kodu dla Windows Phone 7, dla aplikacji RSS:DataContractSerializer nie dane zerowe
private RSSSettings DeserializeSettings(string data)
{
RSSSettings rsssettings;
try
{
var ser = new DataContractSerializer(typeof(RSSSettings));
using (var sr = new StringReader(data))
using (var xr = XmlReader.Create(sr))
rsssettings = (RSSSettings)ser.ReadObject(xr);
}
catch (Exception ex)
{
ex.ToString();
rsssettings = new RSSSettings() { Version = -1 };
}
return rsssettings;
}
doskonale działa na Windows Phone 7. I przeniesiony aplikacji na Windows Phone 8, a wszystko w przeciwnym razie działa w aplikacji z wyjątkiem tego fragmentu.
Porównując to, co dzieje się w Windows Phone 7 i 8, "rsssettings" w WP8 pozostaje puste, podczas gdy poprawnie zapełnia się w WP7. W tej części kodu nie było żadnych zmian w kodzie.
Wszystko działa tak samo, dopóki:
rsssettings = (RSSSettings)ser.ReadObject(xr);
Wyjątkiem nie nazywa.
Ktoś ma pojęcie, jak rozwiązać ten frustrujący problem?
Zacznę od porównania zawartości obiektu danych między dwoma pierwszymi. Czy oni są tacy sami? – Bryant
Obiekt danych jest dokładnie taki sam. To właśnie mnie tak zdezorientowało :( – ReignOfComputer
Dane w obu przypadkach to XML, oba przypadki wydają się przenosić dane aż do tej linii, co podkreślono – ReignOfComputer