ac# フォーム アプリケーションを使用して、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」のように型を使用することはできません。
アプローチ全体が間違っていると思います。いくつかの提案を得たいと思います。