.net 运行时怎么获取到哪个方法被调用了?急,解决了追加100
发布网友
发布时间:2022-04-12 20:16
我来回答
共2个回答
热心网友
时间:2022-04-12 21:45
最简单的办法,定义一个全局的static的变量,然后每个你想检测的函数中都对该变量赋值,但是赋值内容不一样,然后你想检测的时候直接去看这个static的变量是什么值就知道哪个函数刚刚被调用,以此类推想要检测多个函数或者更早被调用的函数都可以用这个方法
这个方法虽然简单,但是代码非常丑陋而且非常低级,想要高级点的方法去看看什么叫反射什么叫attribute,这两个东西结合起来用就很容易实现你想要的
热心网友
时间:2022-04-12 23:03
这样试试看(当前运行程序中才能这样做):
StackTrace
st
=
new
StackTrace(new
StackFrame(true));
StackFrame
sf
=
st.GetFrame(0);
Response.Write("
文件名:"
+
sf.GetFileName());
Response.Write("
方法名:"
+
sf.GetMethod().Name);
Response.Write("
类名:"
+
sf.GetMethod().ReflectedType.Name);
Response.Write("
行号:"
+
sf.GetFileLineNumber());