Reflection within a method
Who am I?
Where am I?
Have you ever asked that question while examining your code? Before I learned about the Call Stack in Visual Studio 2010, I faced that problem often. I’d have a million of these little debugging statements scattered throughout my code.
string callingAssemblyName = System.Reflection.Assembly.GetCallingAssembly().FullName; string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name; string className = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString();
Usage:
using System.Diagnostics; Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() called.");
or
string methodName = System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name;
Debug.WriteLine(methodName + "(" + <method args> + ") called.");
...
Debug.WriteLine(methodName + "() ending.");
