我想编写一个方法,该方法获取调用方法的名称以及包含调用方法的类的名称。
C#反射是否可能?
public class SomeClass { public void SomeMethod() { StackFrame frame = new StackFrame(1); var method = frame.GetMethod(); var type = method.DeclaringType; var name = method.Name; } }
现在,假设您有另一个这样的课程:
public class Caller { public void Call() { SomeClass s = new SomeClass(); s.SomeMethod(); } }
名称将是“ Call”,类型将是“ Caller”
更新两年后,我仍然对此表示赞同
在.Net 4.5中,现在有一种更简单的方法来执行此操作。您可以利用CallerMemberNameAttribute
CallerMemberNameAttribute
继续前面的示例:
public class SomeClass { public void SomeMethod([CallerMemberName]string memberName = "") { Console.WriteLine(memberName); //output will be name of calling method } }