Rei*_*ter 5 c# xml-serialization windows-phone-7 data-serialization windows-phone-8
我有一些Windows Phone 7的代码,用于RSS应用程序:
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;
}
Run Code Online (Sandbox Code Playgroud)
它在Windows Phone 7上完美运行.我将应用程序移植到Windows Phone 8,除了此代码段之外,应用程序中的其他所有内容都可以正常工作.
比较Windows Phone 7和8中发生的情况,WP8中的"rsssettings"在WP7中正确填充时保持为null.代码的这部分根本没有代码更改.
一切都是一样的,直到:
rsssettings = (RSSSettings)ser.ReadObject(xr);
Run Code Online (Sandbox Code Playgroud)
不会调用该异常.
任何人都知道如何解决这个令人沮丧的问题?
Jus*_*gel 12
是的,你不会喜欢这个.
WP8上的DataContractSerializer要求按字母顺序组织XML元素.这是因为假设所有进入DataContractSerializer的内容来自另一个DataContractSerializer.
我希望我能做到这一点,但我不是.来自MSDN的Windows Phone App平台兼容性:
DataContractSerializer类
WP8行为:XML元素必须按字母顺序排序.
WP7行为:XML元素可以是无序的.
此时有几个替代方案:
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |