配置MvvmCross 6.0时出错,请问问题出在哪里?
MvvmCross 6.0 + Xamarin.Forms 适配指南(针对5.5教程迁移)
嘿,作为刚接触MvvmCross 6.0和Xamarin的新手,跟着旧版本教程踩坑太正常了!我先帮你梳理下现有代码的适配点,以及5.5到6.0的关键差异:
一、你的现有代码梳理
1. App.xaml 文件
你创建的MvxFormsApplication在XAML层面的定义是没问题的,但注意6.0里对应的后台代码需要调整,先把你提供的代码格式化如下:
<?xml version="1.0" encoding="utf-8" ?> <core:MvxFormsApplication xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:core="clr-namespace:MvvmCross.Forms.Core;assembly=MvvmCross.Forms" x:Class="App3.App"> </core:MvxFormsApplication>
2. CoreApp.cs 文件(未完成部分)
你提到创建了CoreApp.cs作为MvxApplication,在6.0里这部分的核心配置和5.5有不少区别,我给你一个标准模板参考,你可以根据自己的需求补充:
using MvvmCross; using MvvmCross.IoC; using MvvmCross.ViewModels; namespace App3.Core { public class CoreApp : MvxApplication { public override void Initialize() { // 注册依赖注入:自动识别以Service结尾的类,注册为接口的懒加载单例 CreatableTypes() .EndingWith("Service") .AsInterfaces() .RegisterAsLazySingleton(); // 设置应用启动的第一个ViewModel,替换成你自己的ViewModel类名 RegisterAppStart<YourFirstViewModel>(); } } }
二、5.5到6.0的关键差异点
- 启动流程简化:6.0移除了旧版本中手动初始化
MvxFormsApplication的冗余步骤,改为通过MvxFormsSetup统一完成平台配置,Android/iOS/UWP等项目的启动代码需要对应更新。 - 依赖注入优化:6.0对IoC容器的注册逻辑做了简化,
CreatableTypes()这类链式调用比旧教程里的RegisterType写法更灵活高效。 - NuGet包依赖:确保安装的是适配6.0版本的包,核心包为
MvvmCross.Forms,同时要安装对应平台的专用包(如MvvmCross.Forms.Droid),避免版本不兼容导致的类型找不到问题。
三、下一步建议
如果你在后续编写CoreApp、平台启动代码或者绑定ViewModel时遇到具体报错,可以补充完整的错误信息或未完成的代码片段,我再帮你针对性排查解决!
内容的提问来源于stack exchange,提问作者King Chan
相关产品推荐
相关产品推荐

