MVVMCROSS kasutab objektide ehituse ajal ulatuslikult peegeldust, eriti kontrolli (ROK) konteineri ümberpööramise kaudu, mida haldab `mvx.iocprovider` singleton eksemplar. Siin on üksikasjalik ülevaade sellest, kuidas MVVMCROSS käepidet objektide ehitamise ajal käepideb:
konstruktori süstimine
MVVMCROSS toetab konstruktori süstimist, mis võimaldab tal parameetreid objektide ehituse ajal automaatselt lahendada. Objekti loomisel teostab MVVMcross järgmisi samme:
1. peegeldus konstruktori leidmiseks: MVVMCROSS kasutab reflektsiooni klassi konstruktori tuvastamiseks.
2. parameetri eraldusvõime: see uurib konstruktori nõutavaid parameetreid ja tuvastab vajalikud liidesed või tüübid.
3. Registreeritud rakendused: iga parameetri jaoks kasutab mvvmcross liidese või tüübi registreeritud rakenduse saamiseks `mvx.iocprovider.resolve ()`.
4. kutsuge üles konstruktor: kui kõik parameetrid on lahendatud, kasutab MVVMCross peegeldust, et kutsuda konstruktorit lahendatud parameetritega.
See protsess on rekursiivne, mis tähendab, et kui mõni lahendatud objekt vajab ka muid objekte, lahendab MVVMcross ka need [1] [4].
hulgi registreerimine konventsiooni järgi
MVVMCROSS toetab ka klasside hulgimüüki peegelduse abil. Tavaliselt tehakse seda rakenduse klassis, mis pärib "MVXApplication". Raamistik kasutab peegeldust, et leida kõik tuumikoostu klassid, mis lõpevad "teenusega" ja registreerib neid kui laisaid singletonit. See saavutatakse järgmiste sammude kaudu:
1. Leidke klassid, mis lõppevad "teenusega": peegeldust kasutatakse kõigi klasside leidmiseks, mille nimed lõppevad "teenus" põhikomplektis.
2. Tuvastage liidesed: iga leitud klassi jaoks tuvastab mvvmcross selle rakendatud liidesed.
3. Registreeruge laisate singlenitena: need klassid registreeritakse seejärel oma vastavate liideste vastu laisate singlenitena. See tähendab, et neid ei tehta enne, kui neid esmakordselt taotletakse [2] [4] [7].
ViewModels ja Sõltuvuse süstimine
MVVMCROSS kasutab vaatemodellide jaoks sama konstruktori süstimismehhanismi. ViewModeli loomisel lahendab MVVMcross kõik konstruktoris määratletud sõltuvused, kasutades ROK -i konteinerit. See võimaldab teenuste hõlpsat kohandada erinevatel platvormidel ja hõlbustab ühikute testimist, võimaldades kasutada mõnitavate rakenduste kasutamist [1] [4].
Kohandamine ja Appstart
ROK -i konteineris kohandatud objektide registreerimise ja rakenduse vaatemodellide käivitamise eest vastutab rakenduse klass. Vajadusel saate käivitusprotsessi kohandada, kasutades klassi kohandatud `Appstart` -klassi, et otsustada, millist ViewModelit esitleda [2] [7].
Kokkuvõtlikult võib öelda, et MVVMCROSS abil peegeldab sõltuvust objektide ehituse ajal sõltuvuste lahendamise protsessi automatiseerimiseks, hõlbustades keerukate objektide graafikute haldamist ja toetama platvormidevahelist arengut minimaalse platvormipõhise koodiga.
Tsitaadid:]
]
[3] http://wojosoftware.com/software/mvvmcross/
]
]
[6] https://github.com/media-toools/sqlite-net-extensions
]
]
]
]