如何获取具有命名空间和类名的方法名称?

Dav*_*Dev 28 c# reflection

我想获得完全限定的方法名称.我可以看到如何通过以下方式获取方法名称:

System.Reflection.MethodBase.GetCurrentMethod().Name
Run Code Online (Sandbox Code Playgroud)

但这只返回实际名称.我需要一切,比如:

My.Assembly.ClassName.MethodName
Run Code Online (Sandbox Code Playgroud)

Sam*_*ack 43

尝试

var methodInfo = System.Reflection.MethodBase.GetCurrentMethod();
var fullName = methodInfo.DeclaringType.FullName + "." + methodInfo.Name;
Run Code Online (Sandbox Code Playgroud)


Pat*_*tko 15

您可能需要GetCurrentMethod().DeclaringType,它返回一个Type对象,该对象包含有关声明该方法的类的信息.然后,您可以使用FullName属性来获取命名空间.

var currentMethod = System.Reflection.MethodBase.GetCurrentMethod();
var fullMethodName = currentMethod.DeclaringType.FullName + "." + currentMethod.Name;
Run Code Online (Sandbox Code Playgroud)