程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> VB.NET如何得到調用當前過程的方法名稱和類名

VB.NET如何得到調用當前過程的方法名稱和類名

編輯:更多關於編程

      本教程為大家介紹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 得到調用當前過程的文件路徑。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved