Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Obtener el nombre del método?

Estas en el tema de Obtener el nombre del método? en el foro de C/C++ en Foros del Web. hola a todos!, bueno soy algo noob para temas de programación. Estoy tratando de obtener el nombre de un metodo para temas de log. Estoy ...
  #1 (permalink)  
Antiguo 27/10/2014, 07:36
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 11 años, 11 meses
Puntos: 6
Pregunta Obtener el nombre del método?

hola a todos!, bueno soy algo noob para temas de programación. Estoy tratando de obtener el nombre de un metodo para temas de log. Estoy usando la sintaxis "MethodBase.GetCurrentMethod().Name" el cual me retorna efectivamente el nombre del metodo donde coloco dicho código, hasta ahí todo bien. La dificultad que tengo es que necesito obtener el nombre del método que estoy usando desde otra clase, me explico:

Tengo una clase llamada LogeaError y un metodo llamado GetWorkOrderDetail, en donde yo ejecuto GetWorkOrderDetail e invoco a LogeaError a través de una línea de código como la siguiente:



Código C++:
Ver original
  1. public ResponseWorkOrder GetWorkOrderDetail(string district, string wo_no, string wo_stat_type, string userWS, string token)
  2.         {
  3.           try
  4.             {
  5.                ....
  6.             }
  7.            catch (Exception e)
  8.             {
  9.                 LogeaError.LogPendientes1 EjecucionesPendientes = new LogeaError.LogPendientes1(district, wo_no, wo_stat_type, userWS, token);
  10.                 return new ResponseWorkOrder { Success = false, Text = e.Message };
  11.             }

En la clase LogeaError.LogPendientes1 tengo el siguiente codigo:
Código C++:
Ver original
  1. if (!File.Exists(vPath + fileName))
  2.                 {
  3.                     // Create a file to write to.
  4.                     using (StreamWriter sw = File.CreateText(vPath + fileName))
  5.                     {
  6.                        
  7.                         //AQUI TENGO QUE TRAERME EL NOMBRE DEL METODO
  8.                         sw.WriteLine("Method: " + MethodBase.GetCurrentMethod().Name + " || Date: " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " || Parameters: " + Vdistrict + " - " + Vwo_no + " - " + Vwo_stat_type + " - " + VuserWS + " - " + Vtoken);
  9.                     }
  10.                     writer.Close();
  11.                 }
  12.                 else
  13.                 {
  14.                     //AQUI TENGO QUE TRAERME EL NOMBRE DEL METODO
  15.                     writer.WriteLine("Method: " + MethodBase.GetCurrentMethod().Name + " || Date: " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " || Parameters: " + Vdistrict + " - " + Vwo_no + " - " + Vwo_stat_type + " - " + VuserWS + " - " + Vtoken);
  16.  
  17.                     writer.Close();
  18.                 }

El problema que tengo es que el nombre del metodo que me trae es un tal ".ctor", y deberia ser "GetWorkOrderDetail"....

Qué necesito hacer para que me traiga el nombre del método que necesito??

Desde ya muchas gracias por su tiempo!, Estaré atento a sus respuestas.
Saludos!!
  #2 (permalink)  
Antiguo 27/10/2014, 08:00
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 7 años, 7 meses
Puntos: 204
Respuesta: Obtener el nombre del método?

Este es el foro de C/C++... tu código es de C#.

Por otro lado, si en la llamada al log necesitas conocer el nombre del método que llama al log, puedes pasarlo como argumento:

Código C++:
Ver original
  1. LogeaError.LogPendientes1 EjecucionesPendientes = new LogeaError.LogPendientes1(district, wo_no, wo_stat_type, userWS, token, MethodBase.GetCurrentMethod().Name );

Un saludo.
  #3 (permalink)  
Antiguo 27/10/2014, 08:32
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 11 años, 11 meses
Puntos: 6
De acuerdo Respuesta: Obtener el nombre del método?

Cita:
Iniciado por eferion Ver Mensaje
Este es el foro de C/C++... tu código es de C#.

Por otro lado, si en la llamada al log necesitas conocer el nombre del método que llama al log, puedes pasarlo como argumento:

Código C++:
Ver original
  1. LogeaError.LogPendientes1 EjecucionesPendientes = new LogeaError.LogPendientes1(district, wo_no, wo_stat_type, userWS, token, MethodBase.GetCurrentMethod().Name );

Un saludo.
ahhhh genial!, que rabia me da que halla perdido tanto tiempo y la solución era mas facil de lo que parecia.. en fin..

muchas gracias eferion, me fue de gran ayuda tu comentario :)

Saludos!!

Etiquetas: clase, nombre, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:50.