هل هناك طريقة لتعيين الأساليب الشرطية أو إضافة توجيهات المعالج المسبق في وقت التشغيل في C#؟

StackOverflow https://stackoverflow.com/questions/814337

سؤال

الهدف هو أن تكون قادرًا على تبديل مكالمات تصحيح الأخطاء في وقت التشغيل من قاعدة البيانات في بناء الإنتاج ...

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

المحلول

لا؛الهدف من الأساليب الشرطية وتوجيهات المعالج المسبق هو أنها تتسبب في قيام المترجم بحذف التعليمات البرمجية من الملف التنفيذي النهائي.ما يعادل وقت التشغيل لهذه هو if إفادة.

لكن، البرمجة الموجهة نحو الجانب يعادل تقريبًا ما تطلبه، حيث أنه يسمح لك بإدخال التعليمات البرمجية في برنامج قيد التشغيل لم يكن من الممكن أن يكون موجودًا بطريقة أخرى.

يحرر: كما ذكر جو، فإن طريقة القيام بذلك هي البرمجة وفقًا لإطار عمل التسجيل مثل log4net الذي يسمح بالتحكم الدقيق في ما يتم تسجيله.

نصائح أخرى

وليس في مستوى ما قبل المعالج. بعد كل شيء، كنت تقوم بتشغيل نتيجة لتلك العملية. وبطبيعة الحال، هل يمكن أن تغيير الشيكات قبل المعالج الخاص بك أن تكون الشيكات كود العادية، والتي يمكن أن تنتقل من الواضح كما هو مطلوب.

لا، ولكن معظم النظم الفرعية تسجيل توفر هذه القدرة. مثلا مع log4net يمكنك تغيير مستوى التسجيل حيوي، أو في حالة استخدام System.Diagnostics.Trace يمكنك تغيير في TraceSwitch أخرى مستوى حيوي.

وأنت من الواضح أنه لا يمكن أن تؤثر على رمز ثنائي على هذا النحو (كما هو الحال مع بيان #if).

وماذا أفعل عادة هو التأكد من أن قانون بلدي يحتوي على الكثير من قطع الأشجار، والتي يتم تفعيلها من خلال <لأ href = "http://msdn.microsoft.com/en-us/library/system.diagnostics.traceswitch .aspx اتصال "يختلط =" نوفولو noreferrer "> أثر مفاتيح . وبهذه الطريقة يمكنك الحصول على نظام تشغيل في الإنتاج مع تسجيل ضئيلة أو معدومة، وعندما تريد للبحث عن بعض المشاكل يمكنك التبديل تسجيل الدخول عن طريق تغيير ملف التكوين.

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