我正在尝试通过 ac# forms 应用程序获取 vb.net 项目中所有类中的所有方法名称。
我已经走到了这一步:
private void BindMethods()
{
var assembly = typeof(VBProject.Class1).Assembly;
var publicClasses = assembly.GetExportedTypes().Where(p => p.IsClass);
foreach (var classItem in publicClasses)
{
BindMethodNames<classItem>();
}
}
private void BindMethodNames<T>()
{
MethodInfo[] methodInfos = typeof(T).GetMethods(BindingFlags.Public | BindingFlags.Static);
Array.Sort(methodInfos,
delegate(MethodInfo methodInfo1, MethodInfo methodInfo2)
{
return methodInfo1.Name.CompareTo(methodInfo2.Name)
});
foreach (var methodInfo in methodInfos)
{
this.comboMethods.Items.Add(methodInfo.Name);
}
}
现在问题来了,(因为我做错了什么)它不允许我在 BindMethodNames<>() 的调用中使用类型作为“classItem”。
我想整个方法是错误的,我很想得到一些建议。