如何获取当前方法';s的名称及其参数(名称和值)

本文关键字:参数 获取 何获取 方法 | 更新日期: 2023-09-27 18:00:30

例如在Javascript中:

function logger(args) {
  console.log('Func "' + args.callee.name + '" invoked.');
  for (var arg in args) {
    console.log(arg); //well I cannot get those arguments' name in js
  }
}
function doSomething(x, y, z) {
  logger(this.arguments);
  //do something...
}

我怎样才能做一些类似于C#中的事情?

实际上,我正要在我的程序中实现一个Web服务记录器。有什么建议吗?

谢谢大家。

编辑:对不起,我没有说得更清楚。我知道System.Reflection.MethodBase.GetCurrentMethod()可以获得调用方函数的MethodInfo,但我更关心的是参数的值

如何获取当前方法';s的名称及其参数(名称和值)

请参阅:

我可以从当前执行的函数中按程序获取参数名称/值吗?

你根本做不到除非您使用像PostSharp 这样的AOP工具

方法名称:

void logger([CallerMemberName] string methodName = "") { ... }

当您在doSomething()中调用logger()时,methodName应该是'doSomething'

但无法获得论据。