首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MessagingCenter: System.Reflection.TargetInvocationException: Exception已被调用的目标抛出

MessagingCenter: System.Reflection.TargetInvocationException: Exception已被调用的目标抛出
EN

Stack Overflow用户
提问于 2019-12-24 06:32:57
回答 2查看 1.6K关注 0票数 1

试图通过MessagingCenter发送字符串值时,获取以下异常。例外情况发生在PopupPage上。

异常详细信息:

调用的目标引发了exception:>>System.Reflection.TargetInvocationException:异常。-> System.NullReferenceException:对象引用没有设置为对象的实例。在CatholicBrain.Views.BibleOrderGamePage.<.ctor>b__3_0 (CatholicBrain.Model.BibleOrderGameViewModel,System.String答案) 0x00001中,F:\My Projects\Xamarin\catholicbrain-mobile-app\CatholicBrain\CatholicBrain\Views\BibleOrderGamePage.xaml.cs:30 at (包装托管到本地) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,对象,object[],System.Exception&) at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj,System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder binder,System.Object[]参数),D:\a\1\s\Xamarin.Forms.Core\MessagingCenter.cs:94 at Xamarin.Forms.MessagingCenter.InnerSend (System.String message,System.Type senderType,System.Type argType,System.Object发件人)D:\a\1\s\Xamarin.Forms.Core\MessagingCenter.cs:217 at Xamarin.Forms.MessagingCenter.Xamarin.Forms.IMessagingCenter.SendTSender,TArgs 0x00013 in D:\a\1\s\Xamarin.Forms.Core\MessagingCenter.cs:115 at Xamarin.Forms.MessagingCenter.SendTSender,TArgs 0x00000 in D:\a\1\s\Xamarin.Forms.Core\MessagingCenter.cs:108 at CatholicBrain.Model.BibleOrderGameViewModel.StartBibleOrderCheck (CatholicBrain.Model.BibleOrderAnswer selectedItem,System.Collections.Generic.List`1T rightAnswerList) 0x00114 ( F:\My rightAnswerList)

MessagingCenter.Send

代码语言:javascript
复制
MessagingCenter.Send<BibleOrderGameViewModel, string>(this, "rightanswer", selectedItem.Answer);
await PopupNavigation.Instance.PopAsync();

MessagingCenter.Subscribe

代码语言:javascript
复制
MessagingCenter.Subscribe<BibleOrderGameViewModel, string>(this, "rightanswer", (s, answer) =>
{
    answerLabel.Text = answer;
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-27 08:12:31

我通过在包含MessagingCenter.Unsubscribe代码的页面上添加OnDisappearing()中的MessagingCenter.Subscribe代码来解决这个问题。

代码语言:javascript
复制
protected override void OnDisappearing()
{
    base.OnDisappearing();
    MessagingCenter.Unsubscribe<BibleOrderGameViewModel, string>(this, "rightanswer");
}
票数 0
EN

Stack Overflow用户

发布于 2019-12-24 06:51:52

在发送消息时不应使用此方法,您发送的对象必须与页面分隔。您试过使用标记类而不是对象吗?

请参阅此链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59464740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档