Xamarin.Android 上的 MvvmCross 5.2 抛出错误 'Assembly' 找不到

MvvmCross 5.2 on Xamarin.Android throws Error 'Assembly' could not be found

将 Xamarin.Android 项目从 MvvmCross 5.1 升级到 5.2 后,代码抛出错误

Error CS0246 The type or namespace name 'Assembly' could not be found (are you missing a using directive or an assembly reference?)


public class CustomAndroidPresenter : MvxAndroidViewPresenter
{
    public CustomAndroidPresenter(IEnumerable<Assembly> androidViewAssemblies) : base(androidViewAssemblies)
    {
    }

    public override void Show(MvxViewModelRequest request)
    {
        if (request != null && request.PresentationValues != null)
        {
            if (request.PresentationValues.ContainsKey("MyCustomFlag"))
            {
                // Get intent from request and set flags to clear backstack.
                var intent = base.CreateIntentForRequest(request);
                intent.AddFlags(ActivityFlags.ClearTask | ActivityFlags.ClearTop | ActivityFlags.NewTask);
                base.Show(intent);
                return;
            }
        }
        base.Show(request);
    }
}

There is no argument given that corresponds to the required formal parameter 'androidViewAssemblies' of 'CustomAndroidPresenter.CustomAndroidPresenter(IEnumerable)'

请注意,在您的 Setup.cs class 中,您将 CustomAndroidPresenter 初始化为:

var presenter = new CustomAndroidPresenter();

但是你在 CustomAndroidPresenter class 中添加了一个构造函数 :

public CustomAndroidPresenter(IEnumerable<Assembly> androidViewAssemblies) : base(androidViewAssemblies)
{
}

所以当你初始化CustomAndroidPresenter时,给它参数:

var presenter = new CustomAndroidPresenter(AndroidViewAssemblies);

cannot convert from 'Android.Content.Intent' to 'MvvmCross.Core.ViewModels.MvxViewModelRequest'

使用 base.ShowIntent(intent) 代替 base.Show(intent)