MVVMCROSS 6.4.2 - це оновлення в серії MVVMCross 6, яка запровадила кілька змін та вдосконалень у рамках. Хоча конкретні зміни в 6.4.2 самі не детально описані в результатах пошуку, розуміння більш широкого контексту MVVMcross 6 та його механізму завантаження плагінів може допомогти визначити потенційні наслідки на завантаження плагінів.
Зміни ключа в Mvvmcross 6
1. Спрощена розробка плагінів: починаючи з MVVMCross 6.0, розробка плагінів стала простішою. Щоб створити плагін, вам потрібно створити бібліотеку, яка посилається на основний пакет mvvmcross, додати тип, який успадковує `imvxplugin`, і анотуйте його за допомогою` mvxpluginattribute`. Метод `Load` плагіну автоматично викликається під час налаштування додатків, де слід зареєструвати послуги та класи з контейнером МОК [4].
2. Вдосконалення МОК: MVVMCross 6 включає вдосконалення в системі МОК (інверсія контролю), наприклад, кращу відповідність конструктора для послуг, що може вплинути на завантаження та зареєстрованість плагінів [9].
3. Підтримка платформи: MVVMcross 6 підтримує різні платформи, включаючи Xamarin IOS, Android, форми, Windows та Mac. Ця широка підтримка гарантує, що плагіни можуть використовуватися на різних платформах, але це також означає, що проблеми, що стосуються платформи, можуть виникнути, якщо не правильно оброблятись [2].
Потенційні проблеми з завантаженням плагіна
- Завантаження збірки: У MVVMCross 6 плагіни завантажуються скануваннями для типів, анотованими `mvxpluginattribute`. Якщо збірки, що містять плагіни, належним чином не посилаються та не завантажуються, це може призвести до проблем із завантаженням плагінів [1] [4].
- NULL еталонні винятки: Як показано в деяких випадках, NULL еталонні винятки можуть виникати, якщо збірки плагінів неправильно ідентифіковані або якщо є проблеми з процесом реєстрації МОК [1].
- Сумісність версії: Забезпечення того, що всі пакети та плагіни MVVMCross та плагіни є в одній версії, має вирішальне значення, щоб уникнути проблем сумісності. Це включає перевірку того, що всі пакети Nuget оновлюються до останніх сумісних версій [7].
Найкращі практики завантаження плагінів у mvvmcross 6.4.2
- Правильно переосмислити `LoadPlugins: Якщо налаштувати завантаження плагіна, переконайтеся, що метод` LoadPlugins` належним чином перекриваються в класах налаштування, що стосуються платформи, для обробки будь-якої спеціальної логіки [1] [7].
- Використовуйте `imvxPluginManager`: Використовуйте` imvxPluginManager`, щоб керувати завантаженням плагінів та переконатися, що плагіни правильно зареєстровані в контейнер МОК [4].
- Журнали монітора та винятки: Використовуйте такі інструменти, як вхід пристрою на Mac або Windows, щоб контролювати будь -які винятки, які можуть статися під час завантаження плагіна [3].
Підсумовуючи це, хоча MVVMCross 6.4.2 не вводить конкретних змін у завантаженні плагінів порівняно з попередніми версіями в 6 серіях, розуміння спрощеного процесу розробки плагінів та забезпечення належного завантаження складання та реєстрації МОК є ключовими для уникнення проблем із завантаженням плагінів.
Цитати:[1] https://stackoverflow.com/questions/73128508/how-to-load-plugins-when-updating-to-mvvmcross-6-4-2-from-5-2-2
[2] https://www.nuget.org/packages/mvvmcross/6.4.2
[3] https://github.com/mvvmcross/mvvmcross/issues/4364
[4] https://www.mvvmcross.com/documentation/plugins/plugins-development
[5] https://github.com/mvvmcross/mvvmcross/blob/devell/changelog.md
[6] https://www.nuget.org/packages/plugin.ble/
[7] https://stackoverflow.com/q/33774785
[8] https://www.nuget.org/packages/mvvmcross.forms/6.4.2
[9] https://www.mvvmcross.com/mvvmcross-6.4.0-release/