Atlanta ASP.Net MVC Developer/ Architect
Where were I? (StackTrace Class)
On my current
project we wished to impersonate a WebService for test purposes and decided to record
live messages using XmlSerialization. For the first few messages I manually implemented
code to serialize to a file. This cut-and-paste reuse obviously had to be refactored
but I was unhappy manually passing in the filename to every call of the new method
since the files are named the same as the webmethod. Somehow the generic serialization
code needed to know who called it, or to put it in Jerry’s terms it had to ask ‘Were
were I?’. Jerry replied
to my first ever blog post and finally I got a chance to use his suggestion:
http://dotnetworkaholic.com/PermaLink,guid,692ca362-89cb-4dad-985f-92aea92ca96b.aspx
http://www.codeproject.com/csharp/customtracelistener.asp
The crux is the
StackTrace class which resides in the System.Diagnostics namespace. It is exactly
as you might expect – very simple when you know it exists but I believe it would be
hard to find using Google etc.
This is the code
snippet I used after re-reading Jerry’s Code Project article:
#region Get the
calling method (“Where were I” – courtesy of Jerry Dennany)
System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();
string methodName = “unknown”;
if (st.FrameCount > 0)
{
System.Diagnostics.StackFrame sf = st.GetFrame(1);
methodName = sf.GetMethod().Name;
}
#endregion
Being a stickler
for simplicity I read the MSDN help and reduced the code to:
#region Get the
calling method name (“Where were I” – courtesy of Jerry Dennany)
System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(1, false);
string methodName = st.GetFrame(0).GetMethod().Name;
#endregion
I am not sure
that my employer will be sending a Mr. Dennany a check anytime soon, but I appreciated
the helpful article. This is a good reminder of why we ‘waste’ so much time with blogs.
| Print article | This entry was posted by Paul Lockwood on June 26, 2005 at 6:47 pm, and is filed under Other. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |
about 2 years ago
Hi, Paul –
The “Where were I?” is a grin, but it’s actually an artifact of faulty editing by Codeproject.com. The original submission actually did say “Where was I?”
That’s what I get for submitting to semi-professional sites….