Ç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;

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir