¿Es posible obtener un nombre de método de una acción? Sé que siempre podría pasar una cadena, pero esperaba algo un poco más inteligente.Obtener el nombre del método de la acción
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;
}
uso es el siguiente:
void MyMethod()
(
DeviceCommand(() => api.WriteConfig(config));
)
Esa es una expresión LINQ, ¿qué crees que debería denunciarse? ¿Qué debería ser si fuera 'DeviceCommand (() => (estándar? Api.WriteConfig (config): api.WriteExtendedConfig (config)));' – tvanfosson
¿Está diciendo que es imposible lograr lo que quiero sin pasar algún tipo de orden? de parámetro porque es una expresión LINQ? – Robert
no, solo indica que solo porque su ejemplo es simple, el problema general no es porque Acción podría ser una variedad de cosas, incluyendo cualquier bloque de código calificado. Probablemente estaría bien si no registro la llamada, sino que simplemente me aseguro de incluir el seguimiento de la pila si hay una excepción. O simplemente registre la llamada en cada método si desea realizar un seguimiento de las llamadas. – tvanfosson