IMvxMessenger 的 MvvmCross 用法

MvvmCross usage of IMvxMessenger

我想使用 IMvxMessenger 插件,但我无法在我想使用它的地方初始化视图模型。

我的Core.ViewModels

public class DataViewModel : MvxNavigationViewModel
    {
            protected readonly IMvxMessenger _messenger;
    
            public DataViewModel(IMvxLogProvider logProvider, IMvxNavigationService navigationService, IMvxMessenger messenger)
                : base(logProvider, navigationService)
            {
                this._messenger = messenger;
            }
    }

我的 WPFCore.ViewModels

public class DataViewModel : Core.ViewModels.DataViewModel
{
    public DataViewModel(IMvxLogProvider logProvider, IMvxNavigationService navigationService, IMvxMessenger messenger)
            : base(logProvider, navigationService, messenger)
        {}

    protected new void SaveDyno()
    {
        var message = new Core.Models.MvxReloaderMessage(this, this.Dyno);
        this._messenger.Publish(message);
    }
}

我的 Messenger 模型

 public class MvxReloaderMessage
      : MvxMessage
    {
        public DynoModel Dyno
        {
            get;
            private set;
        }

        public MvxReloaderMessage(object sender, DynoModel dyno)
            : base(sender)
        {
            this.Dyno = dyno;
        }
    }

错误

“创建 WPFCore.ViewModels.DataViewModel 时无法解析 IMvxMessenger 类型的参数信使的参数。您可以将其作为参数传递”

我也尝试了一些初始化,但它不起作用或显示一些错误;

Mvx.RegisterType<IMvxMessenger, MvxReloaderMessage>();
Mvx.IoCProvider.RegisterSingleton<MvvmCross.Plugin.Messenger.IMvxMessenger>(new Core.Models.MvxReloaderMessage());
Mvx.IoCProvider.Resolve<MvvmCross.Plugin.Messenger.IMvxMessenger>();

请确认插件已加载。您可以通过覆盖 Setup.cs 中的 LoadPlugins 并添加:

来做到这一点
pluginManager.EnsurePluginLoaded<MvvmCross.Plugin.Messenger.Plugin>();