بدست آوردن property های یک کلاس در لحظه اجرا

در این مقاله قصد دارم بهتون یاد بدم چگونه در زمان اجرای برنامه بتونید لیست property های یک کلاس را بدست بیارید.معمولا اینکار برای ساخت گزارش های داینامیک و کوئری های داینامیک استفاده میشود .

بدست آوردن property های یک کلاس در لحظه اجرا

خب در ابتدا یک پروژه ایجاد میکنیم

من نام پروژه را GetProperties_Example قراردادم .

سپس یک کلاس بانام person ایجاد کردم و داخل آن 3 property قرار دادم

    class Person
    {
        public int PersonID { get; set; }

        public string PersonName { get; set; }

        public int PersonAge { get; set; }
    }

 

در قسمت بعدی باید از Reflection استفاده کنیم

فضای نام using System.Reflection را اضافه کنید

در مرحله یک متد با نام GetProperties میسازیم تا یک آبجکت به عنوان ورودی دریافت میکند و اطلاعات مورد نیاز را برمیگرداند .

  private static PropertyInfo[] GetProperties(object obj)
        {
            return obj.GetType().GetProperties();
        }

 

کد زیر هم استفاده از متد و نمایش property ها می باشد

        Person p=new Person();
            var properties = GetProperties(p);

            foreach (var propertyInfo in properties)
            {
                Console.WriteLine(propertyInfo.Name);
            }
        }

 

خروجی کار به شکل زیر است

فایل های ضمیمه