【发布时间】:2017-04-05 03:23:49
【问题描述】:
我正在处理一个 UWP 项目,并且错误呈现给我的方式有些奇怪。不知道是VS2017还是UWP是怎么设置的。
我有一段代码上线并检索 json 内容,有时代码有效,有时无效。当我使用 UWP 社区工具包中的 Expander 控件时它可以工作,而当我想切换到 GridView 时它会失败。当它不起作用时,它会在 HttpClient 的 GetStringAsync 方法上失败。奇怪的行为是发生问题的方法中没有抛出异常,代码实际上将我重定向回来而不给出错误,并且一旦它到达应该具有不为空值的属性,我得到一个空异常。 这就是问题发生的地方:
string httpContent = "";
using (HttpClient httpClient = new HttpClient())
{
try
{
httpContent = await httpClient.GetStringAsync(uri);
}
catch (Exception e)
{
// TODO: handle errors
var x = "";
}
}
这段代码是从视图模型中调用的。它以构造函数开头,RefreshServerKanesWrathDataAsync 是解析 json 的方法。
public CncOnlinePageViewModel()
{
cnconline = new CncOnline();
cnconline.RefreshServerKanesWrathDataAsync();
}
当我到达 GetStringAsync 时,代码只是像什么都没发生一样返回到构造函数,但是该方法从未完成,它只是退出到构造函数,因此无法使用数据更新可观察集合。然后我得到一个空异常。
我想用 VS2015 测试一下,但是我更新了一些显然只有 VS2017 支持的控件,所以我无法在其他版本中运行代码。
在此问题之前,我还遇到了代码问题,我尝试在不使用令牌的情况下访问目录中的文件。行为完全相同,代码并没有告诉我我无权访问我想要读取的目录,它只是将我从方法中抛出回到调用读取目录的位置.就像当前的问题一样,我会遇到一个空异常,这不是主要问题所在。
我将 Template10 和 UWP 社区工具包添加到项目中,如果这很重要的话。
【问题讨论】:
标签: c# uwp windows-community-toolkit