Bu yazımda sizlere C# da oluşturduğumuz bir sınıfın tüm propertylerine property adına kullanmadan nasıl erişebileceğimizi anlatacağım. Aşağıdaki gibi Kisiler adında örnek bir sınıfımız olsun.

public class Kisiler
{
    public string Adı { set; get; }
    public string Soyadı { set; get; }
    public string Email { set; get; }
}

Bu sınıfımızdaki propertylere sırasıyla property adını kullanmadan aşağıdaki kod örneği ile erişebiliyoruz.

//Kisi adında bir içinde değerler olan bir nesne tanımladık
Kisiler kisi = new Kisiler { Adı = "Sinan", Soyadı = "AKYAZICI", Email = "admin@sinanakyazici.com" };
//GetType() methodu ile oluşturduğumuz nesnenin tipine ulaşıyoruz.
Type type = kisi.GetType();
//GetProperties() methodu ile bütün property lerine ulaşıyoruz.
//Hepsini PropertyInfo tipinde bir diziye alıyoruz.
//Bu sınıfı kullanmak için using kısmına System.Reflection framework ünü eklememiz gerekmektedir.
PropertyInfo[] properties = type.GetProperties();
//Property lere erişmek için bir foreach döngüsü kuruyoruz.
foreach (var propertyInfo in properties)
{
    //GetValue methodu ile property nin değerine name Name property si ile property nin adına ulaşabiliyoruz.
    //PropertyType property si ile property nin tipine ulşabiliyoruz.
    //GetValue methoduna ilk parametre olarak tanımladığımız sınıf nesnesini gönderiyoruz.
    //İkince parametre ise kullanmadığımız için null olarak gönderiyoruz.
    string deger = propertyInfo.Name +" : "+propertyInfo.PropertyType + " = " + propertyInfo.GetValue(kisi, null).ToString();
    //Bu şekilde sınıfımızdaki bütün propertyleri dolaşıp adına,tipine ve değerine ulaştık.
    MessageBox.Show(deger);
}