设置:
- MvvmCross 插件 Nuget:
- 有一个带有典型 PluginLoader.cs的可移植类库,其中包含
mngr.EnsurePlatformAdaptionLoaded<...>() - 具有包含调用的典型 Plugin.cs的UWP 类库
Mvx.RegisterType<...>() - 打包并在 UI 项目中使用(下一个)
- 有一个带有典型 PluginLoader.cs的可移植类库,其中包含
- MvvmCross UI 项目:
- 有一个可移植的类库和 UWP UI 项目
- 有一个Bootstrap.cs 文件,具有典型的
public class TTSPluginBootstrap : MvxPluginBootstrapAction< MyPlugin.TTS.PluginLoader > - 有一个Setup.cs文件,通常
CreateApp返回Core.App()
问题:
- 在我的 UI 项目中包含 Bootstrap.cs 文件会
setup.Initialize()导致在App::OnLaunched - 删除 Bootstrap.cs 允许 UWP UI proj 运行,但
Mvx.Resolve<...>()调用会导致崩溃 - 我还尝试在 nuget 打包过程中包含 *.pri 和 *.rd.xml 文件,但无济于事。
当前的解决方法:
- 删除 Bootstrap.cs(或将构建类型设置为
Content) - 覆盖
Setup::LoadPlugins:- 要么手动强制类型注册
Mvx.RegisterType<...>,但这种方式违背了目的。 - 或实例化
MyPlugin.Uwp.Plugin,并调用Load它
- 要么手动强制类型注册
问题):
- 如果我能够实例化 Plugin 类,并在其上调用 Load,那么 Bootstrap 反射如何/为什么找不到 PluginLoader?
- 我也尝试过声明我的 Bootstrap 类的 AoT 方式,那么还有什么可以尝试的呢?
- 在创建/使用 UWP MvvmCross 插件(例如 NOT phone/store/8.1)方面是否有很好的参考?