سؤال

وبصرف النظر عن حقيقة أن القانون نفسه يمكن الوصول إلى الذاكرة مباشرة. ما هي الآثار الأخرى المترتبة على استخدام "/ غير آمنة" العلم مترجم والكلمة "ثابت"؟ هل هناك أي طرق على الآثار الناجمة عن توقيع رمز ونشر بلدي إكس (بلدي التطبيق هو سطح المكتب فقط)؟

(وهذه ليست حول ما إذا كان يجب أن أكون القيام بذلك، <م> لماذا يتم تغطية في سؤالي <لأ href = "https://stackoverflow.com/questions/702188/can ، هذا رمز-أن-الأمثل "> هنا )

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

ويمكنك وضع الآثار في دلوين.

والأول هو كيف يؤثر على بيئة التطبيق الخاص بك. باستخدام تعليمات برمجية غير آمنة يتطلب أن يتم تشغيل التجميع الخاص بك في بيئة الثقة الكاملة. ليس من الممكن لتشغيل في بيئة مقيدة مثل بعض انقر مرة واحدة إعدادات الأمان. والسبب هو أن التعليمات البرمجية غير آمن يمنع CLR من ضمان سلامة النوع. انقر مرة واحدة على الرغم مع عدم وجود قيود أمنية لا ينبغي أن يكون مشكلة.

والثاني هو ما يعنيه للطريقة التي التعليمات البرمجية. باستخدام تعليمات برمجية غير آمنة عادة ينطوي على استخدام المؤشرات وعلى وجه الخصوص، واستخدامها لتنفيذ التنظيم المتقدم عبر PInvoke. لا يوجد شيء خطأ في حد ذاته مع أي من هذه الإجراءات على الرغم من. فهو يتطلب أكثر بكثير فهم CLR وحشد من كود "آمنة" لا. الكائن التدبيس هو مثال عظيم من المعرفة وكنت بحاجة إلى فهم راسخ على قبل بدء استخدام هذه الميزات.

لإضافة إلى إشارة جاريد الاعتراض تعلق ...

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top