MvvmCross инициализация
ОбсуждаемыйИспользование MvvmCross от контент-провайдеров и мероприятий Я хотел знать, как инициализировать систему MvvmCross.
Полученный ответ сработал тогда, но с последними обновлениями MvvmCross функция, которую я использовал (MvxAndroidSetupSingleton.GetOrCreateSetup ()), устарела.
Теперь я изменил свою инициализацию, и она, кажется, работает до сих пор, но является ли она правильной и правильной? Должен ли я сделать что-то по-другому, чтобы улучшить мобильность?
Класс установки, в специфичной для платформы DLL для Android:
public class Setup
: MvxAndroidSetup
{
public Setup(Context applicationContext)
: base(applicationContext)
{
}
protected override IMvxApplication CreateApp()
{
// Create logger class which can be used from now on
var logger = new AndroidLogger();
Mvx.RegisterSingleton(typeof(ILogger), logger);
var app = new App();
InitialisePlatformSpecificStuff();
return app;
}
private void InitialisePlatformSpecificStuff()
{
// For instance register platform specific classes with IoC
}
}
И мой класс App в библиотеке переносимого ядра:
public class App
: MvxApplication
{
public App()
{
}
public override void Initialize()
{
base.Initialize();
AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionHandler;
InitialisePlugins();
InitaliseServices();
InitialiseStartNavigation();
}
private void InitaliseServices()
{
CreatableTypes().EndingWith("Service").AsInterfaces().RegisterAsLazySingleton();
}
private void InitialiseStartNavigation()
{
}
private void InitialisePlugins()
{
// initialise any plugins where are required at app startup
// e.g. Cirrious.MvvmCross.Plugins.Visibility.PluginLoader.Instance.EnsureLoaded();
}
public static void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs e)
{
// Log exception info etc
}