MVVMcross 6.4.2 - это обновление в серии MVVMcross 6, которое ввело несколько изменений и улучшений в структуре. Несмотря на то, что конкретные изменения в 6.4.2 не подробно описаны в результатах поиска, понимание более широкого контекста MVVMcross 6 и его механизма загрузки плагинов может помочь определить потенциальные воздействия на загрузку плагина.
Изменения ключей в MVVMcross 6
1. Упрощенная разработка плагинов: начиная с MVVMcross 6.0, разработка плагина стала проще. Чтобы создать плагин, вам необходимо создать библиотеку, которая ссылается на основной пакет MVVMcross, добавьте тип, который наследует от `imvxplugin`, и аннотировать его с помощью` mvxpluginattribute`. Метод плагина «Load» автоматически называется во время настройки приложения, где вы должны зарегистрировать службы и классы с контейнером IOC [4].
2. Улучшения IOC: MVVMcross 6 включает в себя улучшения в системе МОК (инверсию управления), таких как лучшее сопоставление конструкторов для услуг, что может повлиять на то, как плагины загружаются и зарегистрированы [9].
3. Поддержка платформы: MVVMcross 6 поддерживает различные платформы, включая iOS Xamarin, Android, Forms, Windows и Mac. Эта широкая поддержка гарантирует, что плагины могут использоваться на разных платформах, но это также означает, что проблемы, специфичные для платформы, могут возникнуть, если они не обработаны должным образом [2].
Потенциальные проблемы с загрузкой плагина
- Загрузка сборки: в MVVMcross 6 плагины загружаются с помощью сканирующих сборок для типов, аннотированных с помощью `mvxpluginattribute`. Если сборы, содержащие плагины, не ссылаются должным образом или загружены, это может привести к проблемам с загрузкой плагинов [1] [4].
- Нулевые справочные исключения: Как видно в некоторых случаях, нулевые ссылки могут возникнуть, если сборы плагинов не идентифицированы правильно или есть проблемы с процессом регистрации МОК [1].
- Совместимость версий: обеспечение того, чтобы все пакеты MVVMcross были в одной версии, имеет решающее значение, чтобы избежать проблем совместимости. Это включает в себя проверку того, что все пакеты Nuget обновляются до последних совместимых версий [7].
Лучшие методы загрузки плагинов в MVVMcross 6.4.2
- Правильно переопределите `loadplugins`: при настройке загрузки плагина убедитесь, что метод` LoadPlugins` правильно переопределен в классах настройки, специфичной для платформы для обработки любой пользовательской логики [1] [7].
- Используйте `imvxpluginmanager`: используйте` imvxpluginmanager` для управления загрузкой плагинов и убедитесь, что плагины правильно зарегистрированы в контейнере IOC [4].
- Мониторинг журналов и исключений: используйте такие инструменты, как Log Device Log On Mac или Windows для мониторинга любых исключений, которые могут возникнуть во время загрузки плагина [3].
Таким образом, хотя MVVMcross 6.4.2 не вносит конкретные изменения в загрузке плагина по сравнению с более ранними версиями в серии 6, понимание упрощенного процесса разработки плагина и обеспечения надлежащей загрузки сборки и регистрации МОК является ключом к предотвращению проблем с загрузкой плагина.
Цитаты:[1] https://stackoverflow.com/questions/73128508/how-to-load-lugins-when-updation-to-mvvmcross-6-4-2-from-5-6-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/develop/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/