【发布时间】:2010-09-28 12:49:03
【问题描述】:
可能重复:
How can I find the method that called the current method?
我需要一种方法来知道 C# 中调用方法的名称。
例如:
private void doSomething()
{
// I need to know who is calling me? (method1 or method2).
// do something pursuant to who is calling you?
}
private void method1()
{
doSomething();
}
private void method2()
{
doSomething();
}
【问题讨论】:
-
什么情况下需要知道?
-
这闻起来像是糟糕的编程习惯,请告诉我们您为什么要这样做? ;-)
-
将参数传递给 doSomething() 函数,具体取决于调用它的人。
-
是的,这通常不是一个好主意
-
我可以想到一个好主意的情况——如果你有共享代码负责一些横切关注点,例如日志记录,您可能希望此信息专门用于共享代码的输出 - 我在服务调用日志记录中使用这种做法,实用程序函数为服务调用设置安全性和日志记录,并将调用函数的身份用于日志记录和检查安全访问权限
标签: c# reflection