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 方法。


   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


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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索方法
, system
, WriteLine
, 当前
, 名称
, --stacktrace
过程
,以便于您获取更多的相关知识。

时间: 2025-01-25 08:51:57

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

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

本文讲述VB.NET(VB 2008, VB 2005) 如何得到调用当前过程的方法名称(Calling method)和类(Calling Class) 的名称. 主要用到 System.Diagnostics.StackTrace 和 System.Diagnostics.StackFrame,以及 StackFrame的方法:GetFileName,GetFileLineNumber,GetMethod.Name, GetMethod.ReflectedType.Name. 示例代码 如下

vb6 0-vb里面子过程参数为数组时,调用子过程出现数组未定义错误

问题描述 vb里面子过程参数为数组时,调用子过程出现数组未定义错误 大家好,我有段用松弛迭代法解线性方程组的程序,程序包括一个子过程ssor. 该子过程含有数组参数,在调用子过程时,提示数组参数未定义的错误. 下面是该程序,请热心人帮忙检查检查,谢谢大家! Sub ssor(a() As Single, n As Integer, b() As Single, x() As Single, eps As Single, om As Single, count As Integer) ' 松弛迭代

用 System.Reflection.Emit 来自动生成调用储存过程的实现

/**************************************************************** * * 用 System.Reflection.Emit 来自动生成调用储存过程的实现! * * By http://lostinet.com * * Copyrights : Not-Reversed * ****************************************************************///使用的例子namespac

c++-用vb.net(或C#)调用C++编写的DLL时遇到的问题

问题描述 用vb.net(或C#)调用C++编写的DLL时遇到的问题 这部分是在c++中可以正常工作的部分,其声明如下: extern "C" int LHD_Main(unsigned char *pImage, RECT *rcRoi,int w, int h, char *PlateCharacters, RECT *rectPlateLocation, int *PlateReliability, int nMod); 调用如下 //加载图片 IplImage *image =

PHP5下SOAP调用实现过程

原文:PHP5下SOAP调用实现过程 本文以某公司iPhone 6手机预约接口开发为例,介绍PHP5下SOAP调用的实现过程. 一.基础概念 SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架:SOAP编码规则(encoding rules),用于表示应

请问在vsto2005中使用infopath作表单,如果用vb.net代码语言调用sql server 2000存储过程?谢谢

问题描述 请问在vsto2005中使用infopath作表单,如果用vb.net代码语言调用sqlserver2000存储过程?谢谢 解决方案 解决方案二:路过帮顶=============11月6日,论坛升级公告,积分已经做了调整!http://topic.csdn.net/u/20081107/11/b27dc75f-14b1-4594-9de3-5b18d9e36a11.html此次调整增加了两个新的可用分获取渠道:1:帖子被推荐(加精)后,帖主可以获得88分的可用分奖励:2:帖子结帖后会

用一个字符名称调用一个属性或者方法

在设计的大部分时候,用户可以发现一个对象的属性和方法,并且可以写一些代码来处理这些方法.然而在一些时候,不能提前知道一个对象的属性和方法,或者只是想在运行程序的时候能具有指定属性和运行不同方法的灵活性. 举一个例子,一个客户端的运行程序通过给一个COM组件一个操作来计算一个表达式.假想现在正在给服务器加一个需要新的操作描述的函数.不幸的是,这时必须重新编译和发布客户端软件才能使用新的操作.为了避免这种情况,用户可以使用CallByName函数来把新的操作当成一个字符给服务器加载这个函数,而不需要

remopte script文档(转载自微软)<八>调用对象属性和方法

文档: 调用对象属性和方法当您调用一个服务器方法时,该方法不返回单个值.而是创建一个调用对象,该对象包含被调用过程的返回值和状态信息.下表列出了调用对象的属性.属性 描述 id 调用的唯一标识号,它是首次调用时产生的.return_value 方法的返回值──如果有的话.data 产生 remote scripting 调用时,服务器返回的粗数据,是以 XML 标记封装的.有关详细信息,请参阅检查错误.status 指示方法调用当前状态的值.可能值包括:-1     失败0     完成1   

为什么子类能够间接调用父类的私有方法

问题描述 子类的对象是不能直接调用父类的私有方法,但是却可以间接调用,求大家解答!代码如下classFather{publicFather(){System.out.println("Father");}privatevoidhello(){System.out.println("hello");}publicvoidsayHello(){System.out.println(thisinstanceofSon);this.hello();}}publicclass