2015-04-13 3 views
0

При создании моего текущего (первого) приложения Windows Phone мне требуется создать компонент времени выполнения Windows для достижения требуемой функциональности. Чтобы эта настройка работала, а не дублировала много кода из моих PCL в сам класс задачи, я хотел использовать МОК MMVMCross, которую я уже использую во всем приложении.Инициализировать mmvcross IOC для Windows Runtime Component Background Задача

К сожалению, фоновая задача (IBackgroundTask) выполняется в совершенно ином процессе. Попытка использовать IOC через Mvx.Resolve выдает исключение NullReferenceException. Я не могу понять, как инициализировать IOC, поскольку стандартный метод «setup.cs» не работает в компоненте Runtime.

Для этого мне не нужен весь стек MVVMCross - только МОК.

спасибо.

+0

Возможно, попробуйте ответы на ваши вопросы и воспользуйтесь ссылками в http://stackoverflow.com/questions/22544832/mvvmcross-how-do-i-access-sqlite-in-a-windows-store-background-task – Stuart

ответ

0

Я, наконец, понял это. Я должен повторно зарегистрироваться на фоновую задачу, но для инициализации вы могли бы назвать основной метод инициализации для простого контейнера МОК:

Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.Initialize(); 

Плагины были проблемы, так как стандартный механизм плагин не доступен, но вы может вручную зарегистрировать такие интерфейсы:

Mvx.LazyConstructAndRegisterSingleton<IMvxFileStore>(() => new MvxWindowsCommonBlockingFileStore()); 

Конечно, вы все равно можете зарегистрировать свои другие типы и интерфейсы, как обычно.

Смежные вопросы