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) {