被调用的方法如果取得调者的局部变量?

ljyit 2009-03-29 10:45:49
fun1()
{
int a=1;
int b=2;

funTest(name);
}

funTest(string str)
{

System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(true);
System.Reflection.MethodBody mb = trace.GetFrame(1).GetMethod().GetMethodBody();


foreach (System.Reflection.LocalVariableInfo lvi in mb.LocalVariables)
{
//在这里,虽然lvi能得到fun1()中的局部变量类型,但如何取得局部变量的名字和值呢? }
}
...全文
116 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljyit 2009-03-30
  • 打赏
  • 举报
回复

举例只是想把问题描述清楚,并不是想当然把几个参数传进去就可以的问题。

这个问题就是为了动态取得被调用方法中的变量,但是这些变量的名字是在一个字符串中取得

至少有一点可以肯定是的,vs的调试器就能按调用的堆栈来查看指定方法的局部变量
ztenv 2009-03-30
  • 打赏
  • 举报
回复
fun1()
{
int a=1;
int b=2;

funTest(name);//这里多传两个参数不就行了? funTest(name,a,b);
}
chuxue1342 2009-03-30
  • 打赏
  • 举报
回复
你怎么给他赋的值,你就知道怎么取得!
wesleyluo 2009-03-30
  • 打赏
  • 举报
回复
帮你顶起,没用过。
CsToD 2009-03-30
  • 打赏
  • 举报
回复
这个问题以前有人问过吧,不知道是不是你。
还没有解决

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧