27/05/2011, 01:59
|
| | | Fecha de Ingreso: marzo-2011
Mensajes: 63
Antigüedad: 13 años, 8 meses Puntos: 5 | |
Respuesta: Recorrer Métodos Hola, no entiendo bien lo que pides, pero a lo mejor te sirve esto.
Código:
using System.Reflection;
/// <summary>
/// Para saber los Campos, metodos, propiedades y eventos de una clase
/// </summary>
/// <param name="t">Type</param>
/// <param name="tipo">[Campos], [Metodos], [Propiedades], [Eventos]</param>
/// <returns>string[]</returns>
static internal string[] InfoTipo(Type t, string tipo)
{
string[] salida = new string[0];
int n = 1;
BindingFlags flags = BindingFlags.Instance
| BindingFlags.Public
| BindingFlags.DeclaredOnly
| BindingFlags.Static;
switch (tipo)
{
case "Campos":
{
FieldInfo[] cs = t.GetFields(flags);
foreach (FieldInfo m in cs)
{
Array.Resize(ref salida, n);
salida[n - 1] = m.Name;
n += 1;
}
break;
}
case "Metodos":
{
MethodInfo[] mi = t.GetMethods(flags);
foreach (MethodInfo m in mi)
{
if (m.IsSpecialName == false)
{
Array.Resize(ref salida, n);
salida[n - 1] = m.Name;
n += 1;
}
}
break;
}
case "Propiedades":
{
PropertyInfo[] pr = t.GetProperties(flags);
foreach (PropertyInfo m in pr)
{
Array.Resize(ref salida, n);
salida[n - 1] = m.Name;
n += 1;
}
break;
}
case "Eventos":
{
EventInfo[] evs = t.GetEvents(flags);
foreach (EventInfo m in evs)
{
Array.Resize(ref salida, n);
salida[n - 1] = m.Name;
n += 1;
}
break;
}
}
return salida;
}
|