【问题标题】:Initialize mmvcross IOC for Windows Runtime Component Background Task为 Windows 运行时组件后台任务初始化 mmvcross IOC
【发布时间】:2015-04-19 08:26:48
【问题描述】:

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

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

我不需要整个 MVVMCross 堆栈——只需要 IOC。

谢谢。

【问题讨论】:

标签: windows-phone windows-phone-8.1 mvvmcross


【解决方案1】:

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

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

插件是个问题,因为标准插件机制不可用,但您可以手动注册接口,如下所示:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-09
    • 2018-09-07
    • 1970-01-01
    • 2010-10-16
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多