【发布时间】:2010-08-05 17:34:35
【问题描述】:
我正在开发我的第一个 Windows Phone 7 应用程序,但遇到了障碍。基本上它只是读取一个 json 事件字符串并将其绑定到一个列表(使用列表应用程序起点)
public void Load()
{
// form the URI
UriBuilder uri = new UriBuilder("http://mysite.com/events.json");
WebClient proxy = new WebClient();
proxy.OpenReadCompleted += new OpenReadCompletedEventHandler(OnReadCompleted);
proxy.OpenReadAsync(uri.Uri);
}
void OnReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
var serializer = new DataContractJsonSerializer(typeof(EventList));
var events = (EventList)serializer.ReadObject(e.Result);
foreach (var ev in events)
{
Items.Add(ev);
}
}
}
public ObservableCollection<EventDetails> Items { get; private set; }
EventDetails 是我包装 json 字符串的类。这个类必须是正确的,因为它是该网站内部使用的类的精确副本,从中生成 json...
我从 webclient 调用中正确获取了 json 字符串(我读取了内存流并且 json 确实存在)但是一旦我尝试反序列化字符串,应用程序就会退出并且调试器停止。
我没有收到任何错误消息或任何表明发生任何事情的迹象,它只是停止了。如果我也在监视窗口中键入反序列化方法,就会发生这种情况......
我已经尝试过使用 JSON.net,实际上我认为这可能是 JSON.net 的问题,所以我将其转换为使用 .net 框架中的本机反序列化器,但无论哪种方式,错误都是一样的。
为什么应用程序会退出?它不应该给我一些错误信息吗?
我做错了什么?
非常感谢!
【问题讨论】:
-
尝试更改调试设置以抛出所有异常 - 我在发出 Web 请求时有一些异常被静默抛出。
-
你能告诉我我在哪里做这个改变吗?谢谢!
-
ctrl + alt + e 然后选择例外
标签: silverlight json serialization windows-phone-7