سؤال

أحتاج إلى القدرة على معالجة عدد من ملفات C # كخطوة بريبيلد للمشروع، والكشف عن بدء الأساليب، وإدراج التعليمات البرمجية الناتجة في بداية الطريقة، قبل أي رمز موجود. ومع ذلك، فأنا تواجه مشكلة في اكتشاف افتتاح طريقة. حاولت في البداية تعبيرا منتظما مطابقا، لكنه انتهى بكثير من الإيجابيات الكاذبة.

أود استخدام التفكير، ولكن فئة المنهجية لا تشير إلى النقطة في المصدر الأصلي.

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

هل هناك طريقة أفضل للقيام بذلك؟ أنا منفتح على إنشاء Addin Visual Studio Addin.

هذا هو مشروع .NET 2.0.

هتافات

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

المحلول

Postsharp أو mono.cecil. سوف تتيح لك القيام بذلك نظيفة عن طريق تغيير التعليمات البرمجية التي تم إنشاؤها دون الدخول في كتابة محلل C # من غير المرجح أن تكون الأعمال الأساسية لك ...

لم تفعل أي شيء من النتيجة مع Postsharp ولكنه سيكون تخمينه أكثر ملاءمة من أحادي من أجل تنفيذ شيء مثل الشروط المسبقة أو AOP. بالتناوب قد تكون قادرا على القيام بشيء Aopy مع حاوية DI مثل ninject.

ولكن بالطبع يعتمد تطبيق هذه الفكرة - لم تقول الكثير غير المراد إدراج التعليمات البرمجية في بداية الأساليب ...

تحرير: في ضوء رغبتك في القيام الشروط المسبقة ... قانون العقود في .NET 4 بالتأكيد في هذا الاتجاه.

أي نوع من الأداة لديك؟ ما الخطأ في وجود DLL Mono.cecil.dll واحد؟ في كلتا الحالتين شيء آخر غير المحلل هو الأداة للمهمة.

نصائح أخرى

أنا متأكد من أن هناك طريقة أسهل ولكن هذا قد يكون عذرا جيدا لاتخاذ mgramer. لتدور.

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