ShareLinkTask Serialization.InvalidDataContractException WP8

时间:2013-10-21 14:43:58

标签: c# wpf xaml windows-phone-8

我遇到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我做错了。所有索引等都是正确的,应用程序的每个其他功能都正常工作。

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

1 个答案:

答案 0 :(得分:2)

  

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

当您的应用程序进入休眠状态时,您的数据会被序列化,但只有#34; DataContact"属性可以正确序列化。所以问题是 - 你在app中持有一些不可恢复的数据(就像在PhoneApplicationService.Current.State中一样)。找出哪个类导致异常。 你的例外应该是这样的:

  

System.Runtime.Serialization.InvalidDataContractException:在此处输入' TYPE '无法序列化。

这将为您提供一些正在发生的事情。