Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon mvvmcross와 함께 Microsoft.extensions.dependencyInjection을 사용하는 데 알려진 문제가 있습니까?


mvvmcross와 함께 Microsoft.extensions.dependencyInjection을 사용하는 데 알려진 문제가 있습니까?


MVVMCross를 사용하여 Microsoft.extensions.decondencyInjection을 사용하여 몇 가지 과제와 알려진 문제를 제시 할 수 있습니다.

1. MVVMCross 스타트 업 프로세스와 비 호환성 : MVVMCross는 설정 프로세스를 통해 부품을 부분적으로 해결하고 더 많은 구성 요소를 계속 등록 할 수 있어야합니다. 그러나 Microsoft.extensions.dependencyInjection (Ms.Di)은 서비스 수집에서`.Build ()`을 호출하기 전에 모든 구성 요소를 등록해야합니다. 이 근본적인 차이로 인해 한 컨테이너에서 다른 컨테이너로 서비스를 수동으로 변환하는 것과 같은 추가 해결 방법없이 두 시스템을 양립 할 수 없습니다 [1].

2. 2 단계 시작 프로세스 : MVMCROSS와 함께 MS.DI를 활용하기 위해 개발자는 종종 MS.DI 서비스 컬렉션을 구축 한 다음 서비스를 MVVMCross 'IMVXIOCProvider` 인스턴스로 변환합니다. 이 접근법은 2 단계 시작 프로세스를 도입하는데,이 프로세스는 번거롭고 추가 복잡성과 잠재적 문제로 이어질 수 있습니다 [1].

3. 종속성 주입 한계 : MVVMCross의 IOC 컨테이너는 인스턴스형 유형이 아닌 인터페이스 수준에서 싱글 톤 측면을 처리합니다. 이는 클래스가 여러 인터페이스를 구현하는 경우 MVVMCross는 명시 적으로 관리되지 않는 한 각 인터페이스에 대해 별도의 인스턴스를 생성 할 수 있음을 의미합니다 [4]. 이것은 Ms.DI와 직접 관련이 없지만 다양한 종속성 주입 시스템을 통합 할 때 신중한 관리의 필요성을 강조합니다.

4. 업그레이드 및 호환성 문제 : MVVMCross 버전 업그레이드는 때때로 기본 뷰 모델을 사용할 때 종속성 주입과 관련된 문제를 도입 할 수 있습니다. 예를 들어, 버전 간의 생성자 선택 로직의 변화는 종속성이 주입되는 방식에 영향을 줄 수 있습니다 [2].

이러한 과제를 극복하기 위해 개발자는 종종 핵심 IOC 컨테이너를 교체하지 않고 MVMCross의 기능을 향상시키기로 선택합니다. 이를 통해 MVVMCross와 함께 MS.DI와 같은 추가 의존성 주입 프레임 워크를 사용할 수있어 IOC 제공 업체를 선택할 수있는 유연성을 제공합니다 [1] [5]. 그러나 충돌을 피하고 원활한 통합을 보장하기 위해 신중한 설정 및 관리가 필요합니다.

요약하면 Microsoft.extensions.dependencyInjection을 MVVMCross와 함께 사용하는 동안 가능한 문제를 피하기 위해 시작 프로세스, 잠재적 비 호환성 및 신중한 의존성 관리를 신중하게 고려해야합니다.

인용 :
[1] https://github.com/mvvmcross/mvvmcross/issues/4436
[2] https://github.com/mvvmcross/mvvmcross/issues/4183
[3] https://docs.particular.net/nservicebus/dependency-injection/extensions-dependencyInjection
[4] https://stackoverflow.com/questions/23700121/possible-bug-with-dependency-injection-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-dexpendencyinjection-package-xamarin-forms-mvvm-applications-part-2/
[8] https://www.mvvmcross.com/documentation/fundamentals/dependency-injection