我遇到WP8的ShareLinkTask功能问题。 我有一个不同页面的应用程序(查看漫画 - 一个浏览漫画,一个页面列出所有漫画的缩略图)。
只要我留在MainPage.xaml中,ShareLinkTask函数就可以正常工作。但是当我切换到Thumbnails.xaml(通过NavigationService.Navigate ...)时,选择一个新的漫画并分享它ShareLinkTask.Show()将显示共享页面,然后崩溃整个应用程序。
如果我在ShareLinkTask.Show()周围进行try-catch,则不会抛出任何异常。
这是ShareLink功能 - 它通过“保持手势”调用:
ShareLinkTask shareLink = new ShareLinkTask();
shareLink.Title = "a";
shareLink.LinkUri = new Uri(b);
shareLink.Message = "Look at that handsome cartoon!";
try
{
shareLink.Show();
}
catch (Exception a)
{
MessageBox.Show(a.ToString());
}
从控制台我收到此错误行:System.Runtime.Serialization.ni.dll中出现“System.Runtime.Serialization.InvalidDataContractException”
现在Google现在没有任何关于这个问题的事情 - 说实话我并没有真正理解正在发生的事情 - 我不认为我在任何地方串行化......
我建议切换回MainPage.xaml我做错了。所有索引等都是正确的,应用程序的每个其他功能都正常工作。
有谁知道在哪里寻找错误? 提前谢谢。
答案 0 :(得分:2)
当您调用Show时,您的应用程序将进入休眠状态,如果用户导航而不是完成任务,则可能会终止该应用程序。
当您的应用程序进入休眠状态时,您的数据会被序列化,但只有#34; DataContact"属性可以正确序列化。所以问题是 - 你在app中持有一些不可恢复的数据(就像在PhoneApplicationService.Current.State中一样)。找出哪个类导致异常。 你的例外应该是这样的:
System.Runtime.Serialization.InvalidDataContractException:在此处输入' TYPE '无法序列化。
这将为您提供一些正在发生的事情。