VB.NET如何得到调用当前过程的方法名称和类名称

  次阅读 来源:互联网(转载协议) 2016-01-26 10:35 我要评论(0)

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

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 长虹新款智能语音空调,告诉你空调也能玩Siri

    长虹新款智能语音空调,告诉你空调也能玩Siri

  • 品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

    品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

  • 第一批国家重点研发计划公布,旷视科技开启“五年行动”

    第一批国家重点研发计划公布,旷视科技开启“五年行动”

  • 让AI触手可及  Qualcomm携手创通联达推出全新终端侧AI开发套件

    让AI触手可及 Qualcomm携手创通联达推出全新终端侧AI开发套件

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...