1

我在使用 WP8 的 ShareLinkTask 函数时遇到问题。我有一个具有不同页面的应用程序(用于查看漫画 - 一个用于浏览漫画,一个页面用于列出所有漫画的缩略图预览)。

只要我留在 MainPage.xaml 中,ShareLinkTask 函数就可以正常工作。但是当我切换到 Thumbnails.xaml(通过 NavigationService.Navigate...),选择一个新卡通并分享它时,ShareLinkTask.Show() 将显示分享页面,然后整个应用程序崩溃。

如果我围绕 ShareLinkTask.Show() 进行尝试捕获,则不会引发异常。

这是 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”

现在谷歌现在对这个问题一无所知 - 老实说,我并没有真正理解/理解正在发生的事情 - 我认为我没有在任何地方序列化任何东西......

我建议通过切换回 MainPage.xaml 来做错事。所有索引等都是正确的,应用程序的所有其他功能都可以正常工作。

有谁知道在哪里寻找错误?提前致谢。

4

1 回答 1

2

当您调用 Show 时,您的应用程序将进入休眠状态,如果用户离开而不是完成任务,您的应用程序可能会终止。

当您的应用程序进入休眠状态时,您的数据会被序列化,但只有具有“DataContact”属性的类才能正确序列化。所以问题是 -你在你的应用程序中保存了一些 UNSERIALIZABLE 数据(就像在 PhoneApplicationService.Current.State 中一样)。找出导致异常的类。你的例外应该是这样的:

System.Runtime.Serialization.InvalidDataContractException:无法序列化类型“ TYPE HERE ”。

这会让你知道发生了什么。

于 2013-10-21T14:55:13.367 回答