欢迎来到山村网

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

2019-03-02 09:25:53浏览:37 来源:山村网   
核心摘要:  本教程为大家介绍VB.NET如何得到调用当前过程的方法名称和类名称。  本文讲述VB.NET(VB 2008, VB 2005) 如何得到调用当前

  本教程为大家介绍VB.NET如何得到调用当前过程的方法名称和类名称。

  本文讲述VB.NET(VB 2008, VB 2005) 如何得到调用当前过程的方法名称(Calling method)和类(Calling Class) 的名称。

  主要用到 System.Diagnostics.StackTraceSystem.Diagnostics.Stackframe,以及 Stackframe的方法:GetFileNameGetFileLineNumberGetMethod.NameGetMethod.ReflectedType.Name

  示例代码

  如下面示例代码所示,我们有两个类:Class1 和 Class2 ,Class1 的有一个方法(method)叫 LoadXmlFile调用 Class2 的 WriteToFile 方法。

imports System.XmlPublic 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 SubEnd Class

imports System.DiagnosticsPublic 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 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 得到调用当前过程的文件路径。

(责任编辑:豆豆)
下一篇:

使用jQuery和HTML5等开发一个天气预报web应用

上一篇:

WinForm窗体之间交互介绍

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com