Clases derivadas y Type.GetMethods

27/11/2004 - 12:36 por Juan Carlos Paramá | Informe spam
Hola,

Tengo un problema al obtener los metodos de una clase derivada desde la
clase base.

Tengo un programa que explora todos los tipos de un Assembly y si esos
tipos son derivados
de una clase (abstracta) en particular examina todos los metodos
públicos de ese Tipo. El problema
es que solo me muestra los metodos de la clase base aunque si pregunto
por el nombre del tipo
me da el correcto (el de la clase derivada).

¿Alguien sabe como solucionar esto?

Gracias por la ayuda.


Saludos,

Juan Carlos Paramá
 

Leer las respuestas

#1 Octavio Hernandez
27/11/2004 - 14:38 | Informe spam
Juan Carlos,

A mí me funciona perfectamente, mira el ejemplo que te envío más abajo:

Slds - Octavio

********************************
#region Using directives

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Windows.Forms;

using System.Reflection;

#endregion

namespace WindowsApplication24

{

class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

Assembly a = Assembly.GetExecutingAssembly();

Type t = a.GetType("WindowsApplication24.Derivada");

MethodInfo[] m = t.GetMethods();

foreach (MethodInfo mi in m)

{

MessageBox.Show(mi.ToString());

}

}

}

public abstract class Base

{

public abstract void M1();

public abstract void M2();

}

public class Derivada: Base

{

public override void M1()

{

}

public override void M2()

{

}

public virtual void M3()

{

}

public void M4()

{

}

}

}

********************************

"Juan Carlos Paramá" escribió en el mensaje
news:
Hola,

Tengo un problema al obtener los metodos de una clase derivada desde


la
clase base.

Tengo un programa que explora todos los tipos de un Assembly y si esos
tipos son derivados
de una clase (abstracta) en particular examina todos los metodos
públicos de ese Tipo. El problema
es que solo me muestra los metodos de la clase base aunque si pregunto
por el nombre del tipo
me da el correcto (el de la clase derivada).

¿Alguien sabe como solucionar esto?

Gracias por la ayuda.


Saludos,

Juan Carlos Paramá


Preguntas similares