如何获取当前方法';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,但我更关心的是参数的值。
请参阅:
我可以从当前执行的函数中按程序获取参数名称/值吗?
你根本做不到除非您使用像PostSharp 这样的AOP工具
方法名称:
void logger([CallerMemberName] string methodName = "") { ... }
当您在doSomething()
中调用logger()
时,methodName
应该是'doSomething'
。
但无法获得论据。