گرفتن اسم تمام متدهای یک کلاس و خاصیت های آن توسط کتابخانه Reflection

برای گرفتن نام تمامی متدهای یک کلاس می توانیم از متد Type.GetMethods استفاده  کنیم 

 متد Type.GetMethods   آرایه ای از MethodInfo بر می گرداند .MethodInfo شامل اطلاعات زیادی درباره متد می باشد .اگر Type.GetMethods را بدون هیچ پارامتر فراخوانی کنید مقدار برگشتی آن شامل اسم و اطلاعاتی در مورد همه متدهای کلاس و تمام خاصیت های کلاس به همراه property های get,set خواهد بود .می توانید خروجی آن را توسط پارامتر BindingFlags فیلتر کرده و فقط مواردی را برگردانید که مورد نیاز است .

برای استفاده از متد MethodInfo ابتدا باید کتابخانه زیر را به پروژه خود اضافه نمایید .

using System.Reflection;

مثال زیر اسم تمام متدهایی را که در کلاس MyClass به صورت  public و static می باشد  گرفته و چاپ می کند .

  // get all public static methods of MyClass type
  MethodInfo[] methodInfos = typeof(MyClass).GetMethods(BindingFlags.Public | BindingFlags.Static);
  // write method names
  foreach (MethodInfo methodInfo in methodInfos)
  {
    Console.WriteLine(methodInfo.Name);
  }
  //

 

public class MyClass

    {

        public static int Speed()

        {

            return 1; }

        public void Age()

        {...}

      }

 

همانطور که گفتیم این متد اطلاعات زیادی را بر میگرداند به طور مثال شما می توانید نوع های برگشتی متدها را چاپ کنید که بجای  MethodInfo.Name می بایست ReturnType.Name را بنویسید که نوع خروجی متدها را چاپ خواهد کرد .


توسط : عثمان رحیمی  1 ماه قبل ، سه شنبه 4 شهریور 1393 ساعت 10:49  0  1502

نظر شما برای ما مهم است و به ما در بهبود سایت کمک میکند.


ارسال نظر
  • نام (اختیاری ) :
  • پست الکترونیک :
  • توضیحات :

مطالب مرتبط