سؤال

بالنسبة لتطبيقي ، أود تحليل التجميع واستخراج كل طريقة وتخزين اسم الطريقة والرمز المصدر في أحد كائناتي (حددت في الكود الخاص بي).

أين يجب أن أبدأ في تنفيذ ذلك؟

تحرير: من الإجابات والتعليقات رأيت أنه ليس من السهل الحصول على رمز المصدر من التجميعات. ثم أين يجب أن أبدأ إذا كنت أرغب في الحصول على رمز المصدر من ملفات التعليمات البرمجية المصدرية غير الموجودة في الحل الحالي (Visual Studio)؟

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

المحلول

التجمع لا يحتوي رمز المصدر. قد تكون قادرًا على استخراج IL ، ولكن بدون أدوات مثل Reflector أو ildasm التي ليست مفيدة بشكل خاص.

للحصول على أسماء الطريقة, ، مجرد شيء مثل:

    var assembly = Assembly.GetExecutingAssembly();
    var names = (from type in assembly.GetTypes()
                 from method in type.GetMethods(
                   BindingFlags.Public | BindingFlags.NonPublic |
                   BindingFlags.Instance | BindingFlags.Static)
                 select type.FullName + ":" + method.Name).Distinct().ToList();

نصائح أخرى

لاسترداد معلومات التصحيح هذه ، استخدم البنية التحتية للمترجمات الشائعة: بيانات الوصايا الوصفية مشروع.

هذا يتيح لك قراءة .pdb الملفات (الملفات التي تحتوي على معلومات تصحيح الأخطاء مثل ملف المصدر ورقم السطر).

تحتاج أولاً إلى العثور على جميع الأنواع.

يرى هنا للقيام بذلك.

ثم يمكنك العثور على جميع الطرق لكل أنواع.

يرى هنا للقيام بذلك.

إذا كنت بحاجة إلى مثال لجمعه جميعًا ، فأخبرني بذلك.

لست متأكدًا من كيفية الحصول على الكود المصدري ، ولكن إذا كنت تحاول الحصول على معلومات حول الأساليب ، فيجب عليك استخدام التفكير.

MethodInfo[] methodInfos = typeof(MyClass).GetMethods(BindingFlags.Public |
                                                  BindingFlags.Static);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top