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

來源:互聯網
上載者:User

  本文講述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 Sub End 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 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 得到調用當前過程的檔案路徑。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.