MVVMCROSS, nodarbojoties ar datu validāciju un serializāciju, bieži tiek spēlēti divi atribūti: `nepieciešami` un` jsonrequiredAttribute`. Šie atribūti kalpo dažādiem mērķiem un tiek izmantoti dažādos lietojumprogrammas dzīves cikla posmos.
Nepieciešams atribūts
Atribūts `` `ir daļa no" System.componentModel.Dataannotations "nosaukumvietas un tiek izmantots modeļa validācijai. Tas norāda, ka īpašumam jābūt vērtībai; Pretējā gadījumā modelis tiek uzskatīts par nederīgu. Šo atribūtu parasti izmanto pēc deserializācijas modeļa validācijas posmā. Piemēram, ASP.NET kodolā, ja īpašums tiek dekorēts ar `[obligāti],“ modelState ”nebūs derīgs, ja šī īpašuma trūkst vai ir nulle modeļa iesiešanas laikā.
MVVMCROSS, lai gan vajadzīgo atribūtu var izmantot validācijai, tas tieši mijiedarbojas ar JSON serializācijas vai deserializācijas procesiem. Tā vietā tas ir vairāk par to, lai nodrošinātu, ka pirms biznesa loģikas tiek apdzīvotas noteiktas īpašības.
jsonrequiredAttribute
`JSonRequiredAttribute` ir specifisks JSON serializācijai un deserializācijai. To izmanto, lai norādītu, ka īpašumam jābūt klāt JSON datos deserializācijas laikā. Šis atribūts ir ļoti svarīgs, strādājot ar JSON datiem, jo tas nodrošina, ka vienmēr ir nepieciešamās īpašības, novēršot iespējamās kļūdas trūkstošo datu dēļ.
MVVMCROSS, izmantojot JSON navigācijai vai datu pārsūtīšanai starp skata modeļiem, "JSonRequiredAttribute" nodrošina, ka nepieciešamās īpašības tiek seriālizētas un pareizi pārvērtētas. Tas ir īpaši svarīgi, jo MVVMCROSS lielā mērā paļaujas uz JSON sarežģīta parametru nodošanas laikā navigācijas laikā.
Galvenās atšķirības
1. Mērķis:
- "Nepieciešams" ir paredzēts vispārējai modeļa apstiprināšanai, nodrošinot īpašību apdzīvošanu pēc deserializācijas.
- "JSonRequiredAttribute" ir īpaši paredzēts, lai nodrošinātu īpašību klātbūtni JSON deserializācijas laikā.
2. Lietošanas posms:
- "Nepieciešams" tiek izmantots modeļa validācijas laikā pēc deserializācijas.
- `JSonRequiredAttribute` tiek izmantots pašas JSON deserializācijas laikā.
3. Darbības joma:
- `Nepieciešamais` var izmantot dažādos datu formātos un validācijas scenārijos.
- `JSonRequiredAttribute` ir īpaši pielāgots JSON datu apstrādei.
4. Uzvedība:
- Ja trūkst īpašuma, kas apzīmēts ar `nepieciešamo`, pēc deserializācijas radīs validācijas kļūdu.
- Ja JSON deserializācijas laikā trūkst īpašuma, kas apzīmēts ar `jsonrequiredAttribute`, tas parasti izmetīs izņēmumu vai izraisīs izpratnes kļūdu.
Rezumējot, lai gan abi atribūti tiek izmantoti, lai nodrošinātu datu integritāti, `obligāti ir vairāk par vispārēju modeļa validāciju, turpretī“ JSonRequiredAttribute ”ir īpaši vērsta uz datu klātbūtnes nodrošināšanu JSON serializācijas un deserializācijas procesu nodrošināšanā MVVMCROSS lietojumprogrammās.
Atsauces:[1.]
[2] https://www.mvvmcross.com/documentation/plugins/json
[3.]
[4] https://learn.microsoft.com/en-us/dotnet/communitytoolkit/mvvm/generator/observableproperty
[5] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[6] https://www.strathweb.com/2017/12/required-and-bindrequired-in-asp-net-core-mvc/
[7] https://www.mvvmcross.com/documentation/platform/android/android-view-presenter
[8] https://www.mvvmcross.com/documentation/fundamentals/navigation
[9] https://learn.microsoft.com/en-us/dotnet/api/system.text.json.serialization.jsonRequiredAttribute?view=net-9.0
[10] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[11] https://learn.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-9.0