如何使用反射获取基类中声明的方法
本文关键字:声明 方法 基类 何使用 反射 获取 | 更新日期: 2023-09-27 18:00:49
我正试图在Windwos 8存储应用程序中使用反射来调用方法。我试图使用这个从基类方法中获得所有方法的列表。GetType((.GetTypeInfo((.声明方法.
var methodList = base.GetType().GetTypeInfo().DeclaredMethods;
我可以得到所有在子类中声明的方法并调用它们。但我无法获得基类中定义的方法列表
这种方法有什么问题?这个项目是使用.Net为Windows商店构建的
GetType().GetRuntimeMethods()
这种方法得到了我想要的。在运行时获取对象内部存在的所有方法。
您必须手动完成:
public static class TypeInfoEx
{
public static MethodInfo[] GetMethods(this TypeInfo type)
{
var methods = new List<MethodInfo>();
while (true)
{
methods.AddRange(type.DeclaredMethods);
Type type2 = type.BaseType;
if (type2 == null)
{
break;
}
type = type2.GetTypeInfo();
}
return methods.ToArray();
}
}
然后
Type type = typeof(List<int>);
TypeInfo typeInfo = type.GetTypeInfo();
MethodInfo[] methods = typeInfo.GetMethods();
请注意,.DeclaredMethods
是类上的一个属性。这是按预期进行的。
你想要的代码(我想(是
var methodList = base.GetType().GetMethods();