MvxLoaderPluginRegistry.AddConventionalPlugin
がMvvmCross 4.1.4
に更新された後に不足しています。更新後のプラグインをロードする方法MvvmCrossへの更新後にMvxLoaderPluginRegistry.AddConventionalPluginが見つかりません4.1.4
:今、私は別の署名を持っているセットまたはRegister
方法を見ることができますか?
MvxLoaderPluginRegistry.AddConventionalPlugin
がMvvmCross 4.1.4
に更新された後に不足しています。更新後のプラグインをロードする方法MvvmCrossへの更新後にMvxLoaderPluginRegistry.AddConventionalPluginが見つかりません4.1.4
:今、私は別の署名を持っているセットまたはRegister
方法を見ることができますか?
プラグインはBootstrappers
でロードされます。これらのブートストラップは、MvvmCrossプラグインを使用して、フォルダBootstrap
に自動的にインストールされます。 $rootnamespace
は、NuGet経由でプラグインをインストールするときに、ターゲットプロジェクトのルート名前空間に置き換えられます。
iOSのブートストラップMvxLoaderPluginBootstrapAction
から
継承します。
namespace $rootnamespace$.Bootstrap
{
public class BlePluginBootstrap
: MvxLoaderPluginBootstrapAction<MvvmCross.Plugins.BLE.PluginLoader, MvvmCross.Plugins.BLE.iOS.Plugin>
{
}
}
AndroidのブートストラップMvxPluginBootstrapAction
から
継承します。
namespace $rootnamespace$.Bootstrap
{
public class BlePluginBootstrap
: MvxPluginBootstrapAction<MvvmCross.Plugins.BLE.PluginLoader>
{
}
}
プラグインローダー
public class PluginLoader
: IMvxPluginLoader
{
public static readonly PluginLoader Instance = new PluginLoader();
public void EnsureLoaded()
{
var manager = Mvx.Resolve<IMvxPluginManager>();
manager.EnsurePlatformAdaptionLoaded<PluginLoader>();
}
}
プラグイン
各プラグインは、インタフェースの実装を登録し、そのプラットフォーム固有Plugin
クラスを有しています。
namespace MvvmCross.Plugins.BLE.Droid
{
public class Plugin
: IMvxPlugin
{
public void Load()
{
Mvx.LazyConstructAndRegisterSingleton<IAdapter>(() => new Adapter());
}
}
}
はブートストラップがあったが、コードは「wasn、ありがとうございました働いている。これは役に立ちました:https://github.com/MvvmCross/MvvmCross/wiki/MvvmCross-plugins –
本当です。 MvxLoaderPluginRegistry
には、MvvmCross 4.1.4ではこのようなメソッドがありません。
プラグインを読み込むためにBootstrapクラスを使用することをお勧めします。 MvvmCross exampleをチェックすると、従来型アプローチと非従来型アプローチの両方をロードする方法を確認できます。
注:あなたは今、すべてのプラットフォーム用のMvxLoaderPluginBootstrapAction
を使用することができます(4.1.4前に、このブートストラップは、iOS版/ Macのプラットフォーム上でのみ働いていた)
けれども、あなたはまだロードするためにRegistry
を使用したいプラグインを使用すると、プラットフォームを指定する必要がある場合新しいメソッドを使用して、特定のクラス:プラグインレジストリが4.1.4にリファクタリングされていることを
public override AddPluginsLoaders (MvxLoaderPluginRegistry registry)
{
// Register plugin using types
registry.Register<MyPlugin.PluginLoader, MyPlugin.iOS.Plugin>();
// Registeer plugin using factory method
registry.Register<MyPlugin.PluginLoader>(() => new MyPlugin.iOS.Plugin());
}
// Don't forget to load these plugins
public override void LoadPlugins(IMvxPluginManager pluginManager)
{
pluginManager.EnsurePluginLoaded<MyPlugin.PluginLoader>();
base.LoadPlugins(pluginManager);
}
注:https://github.com/MvvmCross/MvvmCross/pull/1290 – Martijn00