Я новичок в MvvmCross 6.0 и Xamarin.
Я пытаюсь следовать учебнику , что для MvvmCrosss 5.5
Я последовал объяснению,
- Создан App.xaml как MvxFormsApplication
<?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>
- CoreApp.cs как MvxApplication и запускает RegisterAppStart (); в моем переопределенном Initialize ()
public class CoreApp : MvxApplication
{
public override void Initialize()
{
CreatableTypes()
.EndingWith("Service")
.AsInterfaces()
.RegisterAsLazySingleton();
CreatableTypes()
.EndingWith("Client")
.AsInterfaces()
.RegisterAsLazySingleton();
// register the appstart object
RegisterAppStart<MainPageViewModel>();
}
}
- MainPageViewModel для унаследованной MvxViewModel
public class MainPageViewModel : MvxViewModel
{
}
- Просмотр того, что создано как MvxContentPage с типом MainPageViewModel
<Label Text="Welcome to Xamarin.Forms!"
VerticalOptions="Center"
HorizontalOptions="Center" />
- Удалил MainActivity и создал файл с именем MainApplication.cs следующим образом
[Activity(Label = "MvvmcrossGettingStarted", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true,
ConfigurationChanges = ConfigChanges.ScreenSize |
ConfigChanges.Orientation)]
открытый класс MainActivity: MvxFormsAppCompatActivity
{
защищенное переопределение void OnCreate (Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
var startup = Mvx.Resolve<IMvxAppStart>();
startup.Start();
InitializeForms(bundle);
}
}
public class Setup : MvxFormsAndroidSetup
{
public Setup():base()
{
}
protected override IEnumerable<Assembly> AndroidViewAssemblies => new List<Assembly>(base.AndroidViewAssemblies
.Union(new[] { typeof(App).GetTypeInfo().Assembly })
.Except(new[] { this.GetType().Assembly })
);
protected override Application CreateFormsApplication()
{
return new App();
}
protected override IMvxApplication CreateApp() => new CoreApp();
}
Однако то, что я запустил приложение, дает мне исключение null, говоря, что параметр "bundle" является нулем в методе OnCreated.
P.S. В руководстве упоминается создание файла Setup.cs, но я понятия не имею, как этот файл Setup.cs запускается кодом .... Я не вижу, куда это ссылается.