Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon كيف تتفاعل السمة [المطلوبة] مع الأنواع الباطئة في واجهة برمجة تطبيقات MVVMCROSS


كيف تتفاعل السمة [المطلوبة] مع الأنواع الباطئة في واجهة برمجة تطبيقات MVVMCROSS


يتم استخدام السمة `[المطلوبة]` في c# لضمان توفير خاصية عند تحديد البيانات ، مثل JSON. ومع ذلك ، عند الجمع بين الأنواع الباطلة ، يمكن أن يبدو غير بديهي لأن الأنواع الباطلة يمكن أن تكون فارغة. غالبًا ما يتم استخدام هذا المزيج للحماية من الهجمات التي يعانون من نقص النشر ، حيث قد يحذف المستخدم الضار خاصية في طلب ، مما يتسبب في تعيين موثق النموذج لقيمة افتراضية بدلاً من رفع خطأ [4].

في سياق MVVMCROSS ، وهو إطار لبناء تطبيقات منصات عبر الأنظمة باستخدام نمط عرض النموذج-ViewModel (MVVM) ، لا يتم معالجة التفاعل بين السمة "المطلوبة] والأنواع المطلوبة مباشرة. يركز MVVMCROSS في المقام الأول على ربط البيانات والتنقل بين المشاهدات ونماذج العرض. ومع ذلك ، يمكن أن يساعد فهم كيفية عمل الأنواع الباطئة في C# المطورين على إدارة تناسق البيانات والتحقق من صحة ضمن تطبيقات MVVMCROSS الخاصة بهم.

فهم الأنواع الباطلة

C# 8.0 تم تقديم أنواع مرجعية لاغية ، مما يتيح للمطورين الإشارة صراحة إلى ما إذا كان نوع المرجع يمكن أن يكون فارغًا. تساعد هذه الميزة في منع استثناءات مرجعية فارغة من خلال توفير تحذيرات في وقت الترجمة عندما لا يتم التعامل مع القيم الخالية بشكل صحيح [7]. عند استخدام أنواع لاغية مع السمة "المطلوبة] ، تضمن السمة أن يتم توفير قيمة بشكل صريح ، في حين يسمح النوع البارئ بإمكانية كونها إدخالًا صالحًا في سيناريوهات معينة [4].

باستخدام [مطلوب] مع أنواع لا لبس

في السيناريوهات التي تحتاج إلى إنفاذها ، يتم توفير خاصية ولكن تسمح أيضًا بأن تكون فارغة (على سبيل المثال ، للتعامل مع حمولات JSON حيث قد يتم تعيين خاصية بشكل صريح على NULL) ، باستخدام السمة "المطلوبة] مع أنواع لاغية يمكن أن تكون مفيدة. ومع ذلك ، ينطبق هذا النهج في المقام الأول على التحقق من صحة البيانات في واجهات برمجة التطبيقات ويب أو سياقات مماثلة بدلاً من مباشرة داخل MVVMCross.

بالنسبة لتطبيقات MVVMCROSS ، فإن ضمان تهيئة الخصائص والتحقق من صحتها بشكل صحيح داخل نماذج العرض أمر بالغ الأهمية. على الرغم من أن MVVMCROSS لا يتفاعل بشكل مباشر مع السمة "[المطلوبة] بطريقة فريدة ، يمكن للمطورين الاستفادة من أنواع المرجعية القابلة للإلغاء من C#وسمات التحقق من الصحة لإدارة تكامل البيانات عبر تطبيقهم.

التحقق المخصص في MVVMCROSS

إذا كنت بحاجة إلى فرض قواعد التحقق من صحة محددة ضمن تطبيق MVVMCROSS ، فقد تفكر في تنفيذ منطق التحقق من الصحة المخصص في نماذج العرض الخاصة بك. يمكن أن يتضمن ذلك التحقق من القيم الخالية أو التأكد من ملء الخصائص التي يتم ملؤها قبل المتابعة مع منطق العمل. يوفر MVVMCROSS آليات لربط البيانات المخصصة ومعالجة التفاعل ، والتي يمكن استخدامها لتنفيذ هذا التحقق من الصحة [5].

باختصار ، في حين أن السمة "المطلوبة] والأنواع الباطئة تستخدم في المقام الأول في سياقات التحقق من صحة البيانات مثل واجهات برمجة التطبيقات على الويب ، فإن فهم تفاعلهم يمكن أن يساعد مطوري MVVMCross على إدارة تناسق البيانات والتحقق من صحةهم. ومع ذلك ، فإن MVVMCROSS نفسها ليس لديها دعم مدمج محدد للسممة "المطلوبة] في الطريقة التي قد تكون بها أطر الويب.

الاستشهادات:
[1] https://stackoverflow.com/questions/47074979/mvvmcross-view-mvxinteraction-is-always-null
[2] https://dev.to/theramoliya/c-required-attribute-for-non-nullable-reference-types-44hb
[3]
[4] https://stackoverflow.com/questions/43688968/hat-does-it-mean-for-a-property-to-be-required-and-nullable
[5] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[6] https://learn.microsoft.com/en-us/dotnet/csharp/nullable-references
[7]
[8]