Korzystanie z Microsoft.Extensions.DependencyIntion z MVVMCROSS może przedstawić kilka wyzwań i znanych problemów:
1. Niezgodność z procesem uruchamiania MVVMCROSS: MVVMCROSS wymaga możliwości rozwiązywania komponentów w części przez proces konfiguracji, a następnie kontynuować rejestrację większej liczby komponentów. Jednak Microsoft.Extensions.dependencyIntion (MS.DI) wymaga zarejestrowania wszystkich komponentów przed wywołaniem `.build ()` w zbiorze usług. Ta fundamentalna różnica sprawia, że oba systemy nie są niezgodne bez dodatkowych obejść, takich jak ręczne tłumaczenie usług z jednego kontenera na inny [1].
2. Dwustopniowy proces uruchamiania: Aby wykorzystać Ms.Di z MVVMCROSS, programiści często budują kolekcję usług MS.DI, a następnie tłumaczą jego usługi na instancję MVVMCROSS `IMVXIOCPROVIDER`. Takie podejście wprowadza dwustopniowy proces uruchamiania, który może być uciążliwy i może prowadzić do dodatkowej złożoności i potencjalnych problemów [1].
3. Ograniczenia wtrysku zależności: Pojemnik MKOl MVVMCROSS traktuje aspekt singletonu na poziomie interfejsu, a nie na instanowany typ. Oznacza to, że jeśli klasa implementuje wiele interfejsów, MVVMCROSS może tworzyć osobne instancje dla każdego interfejsu, chyba że jest wyraźnie zarządzane [4]. Chociaż nie jest to bezpośrednio związane z Panią, podkreśla potrzebę starannego zarządzania podczas integracji różnych systemów wtrysku zależności.
4. Problemy z aktualizacją i kompatybilnością: Uaktualnienie wersji MVVMCROSS może czasami wprowadzać problemy z wstrzyknięciem zależności, szczególnie przy użyciu modeli View Base. Na przykład zmiany w logice wyboru konstruktora między wersjami mogą wpływać na sposób wstrzyknięcia zależności [2].
Aby przezwyciężyć te wyzwania, programiści często decydują się na zwiększenie funkcjonalności MVVMCROSS bez zastępowania jego głównego pojemnika MKOl. Umożliwia to zastosowanie dodatkowych ram wtrysku zależności, takich jak MS.DI wraz z MVVMCROSS, zapewniając elastyczność w wyborze dostawcy MKOl [1] [5]. Wymaga to jednak starannej konfiguracji i zarządzania, aby uniknąć konfliktów i zapewnić bezproblemową integrację.
Podsumowując, podczas korzystania z Microsoft.Extensions.DependencyIntizter z MVVMCROSS jest możliwy, wymaga starannego rozważenia procesu uruchamiania, potencjalnych niezgodności i starannego zarządzania zależnościami w celu uniknięcia znanych problemów.
Cytaty:[1] https://github.com/mvvmcross/mvvmcross/issues/4436
[2] https://github.com/mvvmcross/mvvmcross/issues/4183
[3] https://docs.particular.net/nservicebus/dependency-inction/Extensions-dependencyIntion
[4] https://stackoverflow.com/questions/23700121/possible-bug-with-dependency Inction-n-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-dependencyinction-package-in-xamarin-porms-mvvm-applications-part-2/
[8] https://www.mvvmcross.com/documentation/fundamentals/dependency Inction