Microsoft.Extensions. -riippuvuuden käyttäminen MVVMCROSS: llä voi olla useita haasteita ja tunnettuja kysymyksiä:
1. Yhteensopimattomuus MVVMCross -käynnistysprosessin kanssa: MVVMCross vaatii kyvyn ratkaista komponentit osittain asennusprosessin läpi ja jatkaa sitten lisää komponenttien rekisteröintiä. Microsoft.Extensions.DipentencyInjection (Ms.DI) edellyttää kuitenkin kaikkien komponenttien rekisteröimistä ennen soittamista ".Build ()" -palvelun kokoelmaan. Tämä perustavanlaatuinen ero tekee kahdesta järjestelmästä yhteensopimattomia ilman ylimääräisiä kiertotapoja, kuten palvelun manuaalista kääntäminen säilytyksestä toiseen [1].
2. Kaksivaiheinen käynnistysprosessi: Ms.DI: n hyödyntämiseksi MVVMCROSS: llä kehittäjät rakentavat usein Ms.DI-palvelun kokoelman ja kääntävät sen sitten palvelut mvvmcross `imvxiocprovider '-ilmentymään. Tämä lähestymistapa esittelee kaksivaiheisen käynnistysprosessin, joka voi olla hankala ja voi johtaa ylimääräisiin monimutkaisuuteen ja mahdollisiin ongelmiin [1].
3. Riippuvuusinjektiorajoitukset: MVVMCROSS: n IOC -säiliö käsittelee singleton -näkökulmaa rajapinnan tasolla, ei immektoituneella tyypillä. Tämä tarkoittaa, että jos luokka toteuttaa useita rajapintoja, MVVMCross saattaa luoda erilliset esiintymät jokaiselle rajapinnalle, ellei nimenomaisesti hallita [4]. Vaikka tämä ei liity suoraan Ms.DI: hen, se korostaa huolellisen hallinnan tarvetta integroidessaan erilaisia riippuvuusinjektiojärjestelmiä.
4. Esimerkiksi rakenteen valintalogiikan muutokset versioiden välillä voivat vaikuttaa siihen, miten riippuvuudet injektoidaan [2].
Näiden haasteiden ratkaisemiseksi kehittäjät päättävät usein parantaa MVVMCrossin toiminnallisuutta korvaamatta sen ydinkonsisäisiä. Tämä mahdollistaa ylimääräisten riippuvuusinjektiokehysten, kuten Ms.DI: n, käytön MVVMCrossin rinnalla tarjoamalla joustavuutta KOK -palveluntarjoajan valinnassa [1] [5]. Tämä vaatii kuitenkin huolellista asennusta ja hallintaa konfliktien välttämiseksi ja saumattoman integraation varmistamiseksi.
Yhteenvetona voidaan todeta, että käyttämällä Microsoft.Extensions.EpenencyInjection MVVMCROSS: llä on mahdollista, se vaatii käynnistysprosessin, mahdollisten yhteensopimattomuuksien ja riippuvuuksien huolellisen hallinnan huolellisen tarkastelun tunnettujen kysymysten välttämiseksi.
Viittaukset:[1] https://github.com/mvvmcross/mvvmcross/issues/4436
[2] https://github.com/mvvmcross/mvvmcross/issues/4183
.
.
[5] https://github.com/mvvmcross/mvvmcross/issues/3804
[6] https://www.mvvmcross.com/documentation/fundamentals/data-binding
.
.