Windows phone 初始化Windows运行时组件后台任务的mmvcross IOC

Windows phone 初始化Windows运行时组件后台任务的mmvcross IOC,windows-phone,windows-phone-8.1,mvvmcross,Windows Phone,Windows Phone 8.1,Mvvmcross,在构建当前(第一个)Windows Phone应用程序时,需要创建Windows运行时组件以实现所需的功能。为了使这个设置能够工作,并且不会将大量代码从PCL复制到task类本身,我想使用已经在整个应用程序中使用的MMVMCross IOC 不幸的是,后台任务(IBackgroundTask)是在一个完全不同的进程中执行的。试图通过Mvx.Resolve使用IOC会引发NullReferenceException。我不知道如何初始化IOC,因为标准的“setup.cs”方法在运行时组件中不起作用

在构建当前(第一个)Windows Phone应用程序时,需要创建Windows运行时组件以实现所需的功能。为了使这个设置能够工作,并且不会将大量代码从PCL复制到task类本身,我想使用已经在整个应用程序中使用的MMVMCross IOC

不幸的是,后台任务(IBackgroundTask)是在一个完全不同的进程中执行的。试图通过Mvx.Resolve使用IOC会引发NullReferenceException。我不知道如何初始化IOC,因为标准的“setup.cs”方法在运行时组件中不起作用

我不需要整个MVVMCross堆栈,只需要IOC


谢谢。

我终于明白了。我必须在后台任务上重新注册,但要初始化,您需要调用简单IOC容器上的基本初始化方法:

Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.Initialize();
插件是一个问题,因为标准插件机制不可用,但您可以手动注册如下接口:

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

当然,您仍然可以像往常一样注册其他类型和接口。

也许可以尝试中的答案和链接答案