是否可以从动作获取方法名称?我知道我总是可以传递一个字符串,但我希望有更聪明的东西。从动作获取方法名称
public bool DeviceCommand(Action apiCall)
{
//It would be nice to log the method name that was passed in
try
{
apiCall();
}
catch (Exception exc)
{
LogException(exc);
return false;
}
return true;
}
用法是这样的:
void MyMethod()
(
DeviceCommand(() => api.WriteConfig(config));
)
这是一个LINQ表达式,你认为应该报告什么?如果它是'DeviceCommand(()=>(standard?api.WriteConfig(config):api.WriteExtendedConfig(config)));' – tvanfosson 2011-03-19 20:01:57
你是说如果不通过某种方式就无法完成我想要的东西的参数,因为它是一个LINQ表达式? – Robert 2011-03-19 20:58:31
不,只是指出,仅仅因为你的例子很简单,一般的问题并不是因为Action可能是各种各样的东西,包括任何有资格的代码块。我可能会没有记录这个调用,但只要确保包含堆栈跟踪(如果有异常)。或者如果您想跟踪通话,只需在每种方法中记录通话。 – tvanfosson 2011-03-19 21:13:14