Veysel Uğur KIZMAZ

C# 5.0 Caller Information

22.12.2012Okunma Sayısı: 6410Kategori: C#.Net

Merhaba arkadaşlar,

C# 5.0 versiyonuyla hayatımıza giren Caller Information (çağıran özellikleri) ile oluşturduğunuz metodun nereden (hangi metod tarafından) çağırıldığı bilgisine ulaşabilirsiniz.
 

Caller Information Kullanım Alanları


Örneğin bir metod oluşturdunuz. Oluşturduğunuz metodu bir hesaplama işleminde birçok yerde çağırdınız. Projeyi çalıştırdığınızda metod içerisinde bir  hata verdi. Metodu birçok yerde çağırdığınız için tam olarak nereden çağırıldığını tespit etmek için (hangi kod dosyası, hangi metod, hangi satır) projeyi debug modunda çalıştırıp satır satır incelemeniz gerekmekteydi.

Caller Informations ile metodunuzun tam olarak nereden çağırıldığı bilgisine erişebilmektesiniz.

Caller Information Örneği


Console application oluşturalım. Oluşturduğumuz projeye Matematik isminde bir sınıf ekleyelim ve aşağıdaki gibi kodlayalım.
 
publicclassMatematik
{
    publicvoid Topla(
        int sayi1, int sayi2,
        [CallerFilePath] string dosya = "",
        [CallerLineNumber] int satir = -1,
        [CallerMemberName] string metod = "")
    {
        int sonuc = sayi1 + sayi2;
        Console.WriteLine(sonuc.ToString());
        Console.WriteLine("Metodu çağıran metodun bilgileri:");
        Console.WriteLine(" - Dosya: " + dosya);
        Console.WriteLine(" - Satır: " + satir);
        Console.WriteLine(" - Metod: " + metod);
       
        Console.ReadLine();
    }
}
 
Topla metodunun hangi dosyadaki hangi satırda bulunan hangi metod tarafından çağırıldığı bilgisi dosya, satir ve metod  değişkenlerinde tutulmaktadır. Bu bilgilerin gelmesini, başlarına yazılan attributeler sağlamaktadır.

  • CallerFilePath: Metodun hangi dosyadaki metod tarafından çağırıldığını belirtir.
  • CallerLineNumber: Metodun çağırıldığı metodun, bulunduğu dosyada hangi satırda çağırıldığını belirtir.
  • CallerMemberName: Metodun hangi metod tarafından çağırıldığını belirtir.

Topla metodunu Main metodundan çağıralım.
 
Caller Information Kodları
 
Projeyi çalıştıralım ve gelen verilere göz atalım.
 
Caller Information Görünümü

Proje çalıştırıldığında öncelikle istediğimiz gibi, işlemin sonucunu yazdı. Dosya bölümünde Topla metodunu çağıran Main metodunun bulunduğu dosyanın yolunu, Metod bölümünde Topla metodunu çağıran metodun adını, Satır bölümünde ise Topla metodunun Program.cs dosyası içerisinde hangi satırda çağırıldığı bilgisini vermektedir.
 
 
Yepyeni makalelerde görüşmek dileğiyle :)
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com