pasar parametros objetos metodos funciones entrada con como clases c# .net reflection

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



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.