dado algunas clases de esta manera:No vuelva ToString, iguales, GetHashCode, GetType con Type.GetMethods()
public class MyBaseClass()
{
public void MyMethodOne()
{
}
public virtual void MyVirtualMethodOne()
{
}
}
public class MyMainClass : MyBaseClass()
{
public void MyMainClassMethod()
{
}
public override void MyVirtualMethodOne()
{
}
}
Si funciono el siguiente:
var myMethods= new MyMainClass().GetType().GetMethods();
que volver:
- MyMethodOne
- MyVirtualMethodOne
- MyMainClassMethod
- ToString
- Igual
- GetHashCode
- GetType
¿Cómo puedo evitar los 4 últimos métodos son vueltos en myMethods
- ToString
- Igual
- GetHashCode
- GetType
EDITAR
Hasta el momento, este truco funciona, pero se preguntaba si había una manera más limpia:
var exceptonList = new[] { "ToString", "Equals", "GetHashCode", "GetType" };
var methods = myInstanceOfMyType.GetType().GetMethods()
.Select(x => x.Name)
.Except(exceptonList);
Usted puede usar ['BindingFlags.DeclaredOnly'] (http://msdn.microsoft.com/en-us/library/system.reflection.bindingflags.aspx) para obtener' MyMainClassMethod' y 'MyVirtualMethodOne', pero yo no Creo que hay una bandera correspondiente para "métodos declarados hasta, pero sin incluir, aquellos en' objeto' ". – Rawling