Çağıran Yöntemin İzinde

   C# ile kod yazıyor ve yönteminizi kimin tarafından çağırıldığını bilmek istiyorsanız, System.Diagnostics namespace’i (isimuzayı) altında bulabileceğiniz StackTrace sınıfı tam aradığınız şey olacak!
    Bu sınıfın yöntemlerine göz atacak olursanız GetFrame yöntemi ile Satır, sütun numarası, dosya adı, yöntem adı gibi sizi çağıran yöntem hakkında detaylı bilgilere ulaşabilirsiniz. Alabileceğiniz bu bilgiler içinde tahminimce işinize en çok yaracak olanı ise GetMethod ile ulaşabileceğiniz MethodBase nesnesidir. Bu nesne sayesinde sizi çağıran yöntem/yöntemler hakkında detaylı bilgi edinebileceğiniz gibi reflection işlemlerinde de kullanabilirsiniz.

Bu arada ufak bir hatırlatma;

  • GetFrame(1)  yöntem sizi çağıran yöntem hakkında,
  • GetFrame(0)  ise içinde bulunduğunuz yöntem hakkında bilgi verecektir

    İşte size basit bir kod örneği :

System.Diagnostics.StackTrace stackTrace = new System.Diagnostics.StackTrace();
string callerMethodName = stackTrace.GetFrame(1).GetMethod().Name;

Leave a Comment

en_USEnglish