From c7294d5ffd378c6c2cfe75378d294eb6d258a3c3 Mon Sep 17 00:00:00 2001 From: Rich Date: Fri, 8 Jan 2010 14:34:16 +0000 Subject: [PATCH] Added new Property CalledFrom which will return the first local in the stack --- .../Volian.Controls.Library/vlnStackTrace.cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/PROMS/Volian.Controls.Library/vlnStackTrace.cs b/PROMS/Volian.Controls.Library/vlnStackTrace.cs index 00fb41b7..0eb311e7 100644 --- a/PROMS/Volian.Controls.Library/vlnStackTrace.cs +++ b/PROMS/Volian.Controls.Library/vlnStackTrace.cs @@ -104,6 +104,31 @@ namespace Volian.Controls.Library return sb.ToString(); return "No Local Method"; } + public static string CalledFrom + { + get + { + StackTrace st = new StackTrace(true); + StackFrame[] sfs = st.GetFrames(); + int count = 0; + foreach (StackFrame sf in sfs) + { + if (sf.GetFileLineNumber() != 0) + { + count++; + { + string sMethod = sf.GetMethod().Name; + string sNamespace = sf.GetMethod().ReflectedType.Namespace; + string sType = sf.GetMethod().ReflectedType.Name; + sMethod += string.Format(" {0}[{1}]", sf.GetFileName(), sf.GetFileLineNumber()); + if (count > 3) + return string.Format("{0}.{1}.{2}", sNamespace, sType, sMethod); + } + } + } + return "No Local Method"; + } + } private static StackFrame[] _LastSFS; private static int MatchingStackFrame(StackFrame[] sfs) {