展会信息港展会大全

VB.NET如何得到调用当前过程的方法名称和类名称
来源:互联网   发布日期:2016-01-26 10:35:14   浏览:1606次  

导读:本文讲述VB NET(VB 2008, VB 2005) 如何得到调用当前过程的方法名称(Calling method)和类(Calling Class) 的名称。 主要用到 System Diagnostics StackTrace 和 System Diagnostics StackFrame,以 ...

本文讲述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 方法。

Imports System.Xml

Public Class Class1

Public Sub LoadXmlFile()

Dim filePath As String = "C:a.xml"

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 Sub End Class

Imports System.Diagnostics

Public Class Class2

Public Sub WriteToFile(ByVal Log As String)

Dim clsName As String = ""

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 Sub End 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 得到调用当前过程的文件路径。

赞助本站

人工智能实验室

相关热词: VB NET

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港