我收到了以下stacktrace。但我无法弄清楚哪个类提出了这个函数。谁能告诉我MainPage..ctor是什么?
“帧图像功能偏移
0 coredll.dll xxx_RaiseException 19
1 mscoree3_7.dll 520892
2 mscoree3_7.dll 461967
3 mscoree3_7.dll 534468
4 TransitionStub 0
5 System.InternalTimeZoneInfo.TransitionTimeToDateTime 520
6 System.InternalTimeZoneInfo.GetDaylightTime 100
7 System.InternalTimeZoneInfo.GetIsDaylightSavingsFromUtc 128
8 System.InternalTimeZoneInfo.GetUtcOffsetFromUtc 500
9 System.DateTime.ToLocalTime 164
10 System.DateTime.get_Now 72
11 System.DateTime.get_Today 44
12 xxxx.MainPage..ctor 84
13 mscoree3_7.dll 507848
14 mscoree3_7.dll 184683
15 mscoree3_7.dll 183987
16 mscoree3_7.dll 183375
17 System.Reflection.RuntimeConstructorInfo.InternalInvoke 104
18 System.Reflection.RuntimeConstructorInfo.InternalInvoke 1056
19 System.Activator.InternalCreateInstance 1112“
这是主页构造函数:
public MainPage()
{
InitializeButtons();
CreateCalendar();
DisplayHistory();
DisplayStatistics();
}
在CreateCalendar
里面我初始化了一个变量DateTime currentDate = DateTime.Today;
这是造成问题的那个吗?
答案 0 :(得分:2)
我建议您将方法移动到Page loaded事件,如下所示:
public MainPage()
{
InitializeComponent();
Loaded += MainPage_Loaded; // you may declare it in xaml as well
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
CreateCalendar();
DisplayHistory();
DisplayStatistics();
}
取决于您在每个方法中执行的操作类型 - 主要是如果它包含UI -it建议将其包装到Dispatcher中:
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
CreateCalendar(); //assuming this method does not use UI
Dispatcher.BeginInvoke(() =>
{
//asuming these methods use UI
DisplayHistory();
DisplayStatistics();
});
}
尝试一下,让我们知道,
欢呼声
答案 1 :(得分:1)
在我的情况下,这个错误偶尔会出现一些微不足道的变化。它在运行Silverlight单元测试框架下的测试初始化阶段失败。在单元测试项目中间接引用的项目中进行了更改(即单元测试项目引用了Windows Phone库,并且库引用了PCL并进行了更改)。
当发生崩溃时,我添加的代码根本没有执行,这是多余的!
在用二分法注释掉新代码后,我最终评论了一行停止抛出异常。这条线是这样的:
var items = jData [“items”]。选择(token => token.ToObject())。ToList();
其中jData是来自着名的Json.NET的JObject实例。更新到最新版本的Json.NET没有帮助。
用显式丑陋for循环替换LINQ表达式后错误消失了(嘲笑Resharper说“for循环可以转换为LINQ表达式”。
所以我开始相信魔术。
希望这有助于某人。