本教程为大家介绍VB.NET如何得到调用当前过程的方法名称和类名称。
本文讲述VB.NET(VB 2008, VB 2005) 如何得到调用当前过程的方法名称(Calling method)和类(Calling Class) 的名称。
主要用到 System.Diagnostics.StackTrace 和 System.Diagnostics.StackFrame,以及 StackFrame的方法:GetFileName,GetFileLineNumber,GetMethod.Name, GetMethod.ReflectedType.Name。
示例代码
如下面示例代码所示,我们有两个类:Class1 和 Class2 ,Class1 的有一个方法(method)叫 LoadXmlFile调用 Class2 的 WriteToFile 方法。
Dim xdoc As New Xml.XmlDocument Try
xdoc.Load(filePath)
Catch ex As Exception
Dim log As New Class2
log.WriteToFile("Error. Load XML File failed")
End Try End SubEnd Class
Dim mtdName As String = ""
Dim lnNo As String = ""
Dim codeFilePath As String = "" Dim st As New StackTrace(True)
If st.FrameCount > 1 Then
Dim sf As StackFrame = st.GetFrame(1)
mtdName = sf.GetMethod.Name
Debug.WriteLine(mtdName) clsName = sf.GetMethod.ReflectedType.Name
Debug.WriteLine(clsName) lnNo = sf.GetFileLineNumber.ToString
Debug.WriteLine(lnNo) codeFilePath = sf.GetFileName
Debug.WriteLine(codeFilePath)
End If End SubEnd Class
在 Class2里面,我们写了一些代码得到调用它的 Class1的名称,所在文件路径,调用方法的名称,以及调用文件里执行调用的行数。
要点
1. 要 Imports System.Diagnostics。
2. 要用到 StackTrace (System.Diagnostics.StackTrace) 和 StackFrame (System.Diagnostics.StackFrame)。
3. 要用到 StackTrace.GetFrame(1)。
4. StackFrame.GetMethod.Name 得到调用当前过程的方法 (calling method name)。
5. StackFrame.GetMethod.ReflectedType.Name 得到调用当前过程的类的名称 (calling class name)。
6. StackFrame.GetFileLineNumber.ToString 得到调用当前过程的语句在文件里的行数。
7. StackFrame.GetFileName 得到调用当前过程的文件路径。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索方法
, system
, WriteLine
, 当前
, 名称
, --stacktrace
过程
,以便于您获取更多的相关知识。