objetos - parametros de entrada en c#
¿Cómo puede obtener los nombres de los parámetros del método? (4)
Pruebe algo como esto:
foreach(ParameterInfo pParameter in pMethod.GetParameters())
{
//Position of parameter in method
pParameter.Position;
//Name of parameter type
pParameter.ParameterType.Name;
//Name of parameter
pParameter.Name;
}
Si tengo un método como:
public void MyMethod(int arg1, string arg2)
¿Cómo podría obtener los nombres reales de los argumentos? Parece que no puedo encontrar nada en MethodInfo que realmente me dé el nombre del parámetro.
Me gustaría escribir un método que se vea así:
public static string GetParamName(MethodInfo method, int index)
Entonces, si llamé a este método con:
string name = GetParamName(MyMethod, 0)
devolvería "arg1". es posible?
sin ningún tipo de comprobación de errores:
public static string GetParameterName ( Delegate method , int index )
{
return method.Method.GetParameters ( ) [ index ].Name ;
}
Puede usar ''Func <TResult>'' y derivados para hacer que esto funcione para la mayoría de las situaciones
nameof(arg1)
devolverá el nombre de la variable arg1
public static string GetParamName(System.Reflection.MethodInfo method, int index)
{
string retVal = string.Empty;
if (method != null && method.GetParameters().Length > index)
retVal = method.GetParameters()[index].Name;
return retVal;
}
La muestra anterior debe hacer lo que necesita.