Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuidas atribuut [vajalik] atribuut interakteerub MVVMcross API -s tühistatavate tüüpidega


Kuidas atribuut [vajalik] atribuut interakteerub MVVMcross API -s tühistatavate tüüpidega


C# atribuuti "[nõutav]" kasutatakse tagamaks, et andmete deklareerimisel tuleb atribuuti anda, näiteks JSON -ist. Kui see on ühendatud tühistatavate tüüpidega, võib see tunduda vastuoluline, kuna tühistatavad tüübid võivad olla null. Seda kombinatsiooni kasutatakse sageli kaitstud rünnakute eest, kus pahatahtlik kasutaja võib päringu omandist välja jätta, põhjustades mudeli siduja vaikeväärtuse määramise asemel vea tõstmise asemel [4].

MVVMCROSSi kontekstis, mis on raamistik platvormidevaheliste rakenduste ehitamiseks, kasutades mudel-vaate-viewModel (MVVM) mustrit, ei käsitleta atribuutide ja tühistatavate tüüpide vahelist interaktsiooni otseselt. MVVMCROSS keskendub peamiselt andmete sidumisele ja navigeerimisele vaadete ja vaatemudelite vahel. Kuid mõistmine, kui vähendatavad tüübid C# töötavad, aitab arendajatel hallata andmete järjepidevust ja valideerimist oma MVVMCROSS -i rakendustes.

Mõistetavate tüüpide mõistmine

C# 8.0 tutvustas tühistatavaid viitetüüpe, võimaldades arendajatel selgesõnaliselt näidata, kas võrdlusliik võib olla null. See funktsioon aitab vältida null-viide erandeid, pakkudes kompileerimisajal hoiatusi, kui nullväärtusi ei käsitleta õigesti [7]. Kui kasutate tühistatavaid tüüpe atribuudiga [nõutav] `, tagab atribuut, et väärtus on selgesõnaliselt pakutud, samas kui tühistatav tüüp võimaldab null olla kehtiv sisend teatud stsenaariumides [4].

[vajalik] kasutamine koos tühistatavate tüüpidega

Stsenaariumide korral, kus peate atribuuti tagama, kuid laske sellel olla ka null (näiteks JSON -i kasulike koormustega tegelemiseks, kus atribuut võidakse selgesõnaliselt nulliks seada), võib kasu olla, kasutades nullitatavate tüüpidega atribuuti [nõutavat]. Kuid see lähenemisviis kehtib peamiselt andmete valideerimise kohta pigem veebi API -de või sarnaste kontekstide kui otse MVVMCrossi piires.

MVVMCROSS -i rakenduste puhul on ülioluline tagada, et omaduste õigesti lähtestamine ja vaatemudelite piires valideerimine. Kuigi MVVMCROSS ei suhtle otseselt atribuutiga "[nõutav]" ainulaadsel viisil, saavad arendajad kasutada C#tühistatavaid viitetüüpe ja valideerimisatribuute, et hallata andmete terviklikkust kogu oma rakenduses.

Kohandatud valideerimine MVVMcrossis

Kui peate MVVMCROSS -i rakenduses jõustama konkreetseid valideerimisreegleid, võiksite kaaluda kohandatud valideerimisloogika rakendamist oma vaatemudelites. See võib hõlmata nullväärtuste kontrollimist või teatud atribuutide asustamise tagamist enne äriloogika jätkamist. MVVMCROSS pakub mehhanisme kohandatud andmete sidumiseks ja interaktsiooni käitlemiseks, mida saab kasutada sellise valideerimise rakendamiseks [5].

Kokkuvõtlikult võib öelda, et kuigi atribuuti ja tühistatavaid tüüpe kasutatakse peamiselt andmete valideerimise kontekstides, näiteks veebi API -del, võib nende interaktsiooni mõistmine aidata MVVMCrossi arendajatel hallata andmete järjepidevust ja valideerimist nende rakendustes. Kuid MVVMcrossil endal pole konkreetset sisseehitatud tuge atribuudile [nõutav], kuidas veebiraamistikud võiksid.

Tsitaadid:
]
]
]
]
[5] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
]
]
]