reflection işlemini yapabilmek için System.Reflection Kütüphanesini projemize dahil etmemiz gerekiyor.
using System.Reflection;
Basit Bir Class oluşturalım ;
public class KimlikBilgileri
{
private string Ad;
public string Ad1
{
get { return Ad; }
set { Ad = value; }
}
public string Soyad;
public int Topla(int sayi1,int sayi2)
{
return sayi1 + sayi2;
}
}
gördüğünüz gibi class yapımızda 2 adet field,1 adet property ve 1 adet fonksiyon bulunuyor.şimdi reflection kullanarak bu class içerisinde nasıl gezineceğimizi basitçe inceleyelim.
KimlikBilgileri kimlik = new KimlikBilgileri();
FieldInfo[] fields = kimlik.GetType().GetFields();
foreach (var fieldinfo in fields)
{
listBox1.Items.Add("Değişken Adı : " + fieldinfo.Name +" " + fieldinfo.FieldType);
}
yukarıdaki kod bloğu örneğini oluşturduğumuz KimlikBilgileri Class'ının içerisindeki Field'lara erişimi Sağlar. ve dönen değeri Listbox'a Atar.
Aşağıdaki Kodlama Yukarıda örneğini oluşturduğumuz Class içerisindeki Property'ler üzerinde işlem yapmamızı Sağlar.
PropertyInfo[] propinfo = kimlik.GetType().GetProperties();
foreach (var prop in propinfo)
{
MessageBox.Show(prop.Name + "----" + prop.PropertyType);
}
ve son olarakta Class içerisindeki Metodlarımıza şu şekilde Erişebiliriz;
MethodInfo[] metodInfo = kimlik.GetType().GetMethods();
foreach (var metod in metodInfo)
{
//MethodBody body = metod.GetMethodBody();
ParameterInfo[] param=metod.GetParameters();
for (int i = 0; i < param.Length; i++)
{
MessageBox.Show(param[i].Name+Environment.NewLine + param[i].ParameterType);
}
}
şimdilik buraya kadar.Reflection konusu geniş bir konu.ben burada sadece bazı özelliklerini paylaştım.kullandıkça ne kadar çok özelliğinin olduğunu zaten sizde görebileceksiniz.