Además, si usted sabe que su método estático y tener acceso a ella en un tiempo de compilación, se puede usar Expression
clase para obtener MethodInfo
sin utilizar directamente la reflexión (que puede causar errores de ejecución adicionales):
public static void Main()
{
MethodInfo staticMethodInfo = GetMethodInfo(() => SampleStaticMethod(0, null));
Console.WriteLine(staticMethodInfo.ToString());
}
//Method that is used to get MethodInfo from an expression with a static method call
public static MethodInfo GetMethodInfo(Expression<Action> expression)
{
var member = expression.Body as MethodCallExpression;
if (member != null)
return member.Method;
throw new ArgumentException("Expression is not a method", "expression");
}
public static string SampleStaticMethod(int a, string b)
{
return a.ToString() + b.ToLower();
}
Aquí parámetros reales pasados a una SampleStaticMethod
no importa como único órgano de 0 Se utiliza, por lo que puede pasarle null
y valores predeterminados.
En ese caso, devuelvo 0 métodos ... ¿Importa si ejecuto esto desde la misma clase o desde el método principal? – Urik
Actualizado ... para obtener todos los métodos, tanto estáticos como de instancia, públicos y no públicos –
¡Como un encanto! ¡Gracias! – Urik