C# Caller Information

C# 5.0 ile birlikte gelen Caller Information özelliği sayesinde bir metodun hangi dosyadaki hangi metod tarafından kaçıncı satırdan çağrıldığını bulabiliyoruz. Özellikle debug ederken faydalı olan bu özelliği loglama amacı ile de kullanabiliriz.

CallerFilePath: Metodun hangi dosyadan çağrıldığı bilgisi

CallerMemberName : Metodun hangi metod tarafından çağrıldığı bilgisi

CallerLineNumber: Metodun CallerFilePath ile belirtilen dosyanın hangi satırından çağrıldığı bilgisi.

namespace CallerInfo
{
    public class CallerInfoExample
    {
        public void Log(String logMessage, [CallerMemberName] string callerName="", 
                                           [CallerLineNumber] int lineNumber=0, 
                                           [CallerFilePath] string filePath="")
        {
            Console.WriteLine("Çağrıldığı Dosya=" + filePath);   
            Console.WriteLine("Çağıran Metod="+callerName);
            Console.WriteLine("Çağrıldığı Satır Numarası=" + lineNumber); 
        }        
    }
}

namespace CallerInfo
{
    class Test
    {
        static void Main()
        {
            CallerInfoExample callerInfo = new CallerInfoExample();
            callerInfo.Log("Caller Info Test");
        }
    }
}

Main içerisinde oluşturduğumuz sınıfın Log metodunu bu şekilde çağırdığımızda konsolda Main metodunun bulunduğu dosyanın pathi, Main metodunun adı ve Log metodunun çağrıldığı satır numarası yazacak.

Çağrıldığı Dosya=c:\Users\acer\Documents\Visual Studio 2012\Projects\ConsoleAppl
ication1\ConsoleApplication1\Program.cs
Çağıran Metod=Main
Çağrıldığı Satır Numarası=14

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s