MVVMCross中的自定义插件

时间:2013-05-28 09:11:31

标签: mvvmcross

我正在研究MVVMCross v3,我想创建自己的插件,我按照本教程(适用于vNext)

http://slodge.blogspot.fr/2012/10/build-new-plugin-for-mvvmcrosss.html

为了与v3兼容,我将IMvxServiceConsumer和GetService更改为Mvx.Resolve。

但是在教程中有:

然后,对于WinRT,WindowsPhone和MonoTouch客户端,您还需要在setup.cs中提供一个Loader访问器 - 例如:

protected override void AddPluginsLoaders(Cirrious.MvvmCross.Platform.MvxLoaderPluginRegistry loaders)

{
    loaders.AddConventionalPlugin<MyCompany.MvvmCross.Plugins.Mega.WindowsPhone.Plugin>();

    base.AddPluginsLoaders(loaders);
}

我怎样才能在v3中这样做?

由于

1 个答案:

答案 0 :(得分:4)

如果你想写一个新的插件,那么:

对于插件初始化,nuget包现在通过bootstrap文件执行此操作 - 例如查看为位置添加的文件:


引导方式是现在初始化的正常方式。

如果您确实想使用非引导技术,那么您可以这样做:

  • 在WinRT,WinPhone和Droid中,您不需要使用加载程序,但在使用该插件之前,您需要调用MyPlugin.PluginManager.Instance.EnsureLoaded
  • 在触控中,您需要在protected override void AddPluginsLoaders(MvxLoaderPluginRegistry loaders) - 期间提供加载程序,然后您仍然需要在使用该插件之前调用EnsureLoaded()

有关这种旧方式的例子&#39;工作,请参阅https://github.com/slodge/MvvmCross-Tutorials/tree/master/Sample%20-%20TwitterSearch

中的UI项目中的Setup.cs