Использование microsoft.extensions.pectendencyInction с MVVMcross может представлять несколько проблем и известных проблем:
1. Несовместимость с процессом запуска MVVMcross: MVVMcross требует возможности разрешения компонентов на протяжении всей настройки, а затем продолжать регистрировать больше компонентов. Тем не менее, Microsoft.extensions.EpectendencyInction (Ms.DI) требует, чтобы все компоненты были зарегистрированы перед вызовом `.build ()` в сборку услуг. Это фундаментальное различие делает две системы несовместимыми без дополнительных обходных путей, таких как вручную перевод услуг из одного контейнера в другой [1].
2. Двухступенчатый процесс запуска: Чтобы использовать Ms.DI с помощью MVVMcross, разработчики часто создают коллекцию услуг MS.DI, а затем переводят свои услуги в экземпляр MVVMcross `imvxiocProvider '. Этот подход вводит двухэтапный процесс запуска, который может быть громоздким и может привести к дополнительной сложности и потенциальным проблемам [1].
3. Ограничения впрыска зависимостей: контейнер MVVMcross IOC обрабатывает аспект синглтона на уровне интерфейса, а не к экземпляра. Это означает, что если класс реализует несколько интерфейсов, MVVMcross может создавать отдельные экземпляры для каждого интерфейса, если только явно не управляется [4]. Несмотря на то, что это не связано напрямую с г -жой, это подчеркивает необходимость тщательного управления при интеграции различных систем впрыскивания зависимостей.
4. Проблемы с обновлением и совместимостью: обновление версий MVVMcross иногда может вводить проблемы с инъекцией зависимостей, особенно при использовании моделей Base View. Например, изменения в логике выбора конструктора между версиями могут повлиять на то, как вводятся зависимости [2].
Чтобы преодолеть эти проблемы, разработчики часто предпочитают улучшить функциональность MVVMcross без замены его основного контейнера IOC. Это позволяет использовать дополнительные рамки впрыска в зависимости, такие как Ms.DI вместе с MVVMcross, обеспечивая гибкость при выборе поставщика МОК [1] [5]. Тем не менее, это требует тщательной настройки и управления, чтобы избежать конфликтов и обеспечить бесшовную интеграцию.
Таким образом, при использовании Microsoft.extensions.PectendencyInction с MVVMcross возможно, это требует тщательного рассмотрения процесса запуска, потенциальной несовместимости и тщательного управления зависимостями, чтобы избежать известных проблем.
Цитаты:[1] https://github.com/mvvmcross/mvvmcross/issues/4436
[2] https://github.com/mvvmcross/mvvmcross/issues/4183
[3] https://docs.particular.net/nservicebus/dependency-incement/extensions-depectendencyInction
[4] https://stackoverflow.com/questions/23700121/possible-bug-with-preadency-incement-on-mvvmcross
[5] https://github.com/mvvmcross/mvvmcross/issues/3804
[6] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[7] https://msicc.net/using-microsofts-extensions-depectendencyInction-package-in-xamarin-forms-mvvm-applications-part-2/
[8] https://www.mvvmcross.com/documentation/fundamentals/dependency-nection