我正在尝试枚举程序集中的所有方法,并将它们添加到treeview中的节点:
private void bOpen_Click(object sender, EventArgs e)
{
var ofd = new OpenFileDialog();
if (ofd.ShowDialog() != DialogResult.OK)
return;
var asm = Assembly.LoadFile(ofd.FileName);
foreach (Module module in asm.GetModules())
{
var tnode = new TreeNode(module.Name);
foreach (MethodInfo method in module.GetMethods())
{
tnode.Nodes.Add(method.Name);
}
treeView1.Nodes.Add(tnode);
}
}问题是任何模块下都没有任何方法。我知道这与treeview无关,因为module.GetMethods().Length返回0。我是不是漏掉了什么?
发布于 2011-07-01 23:18:32
您要在程序集中的模块中查找方法,而不是在程序集中的类型中查找。将您的循环更改为:
foreach (Type type in asm.GetTypes())
{
var tnode = new TreeNode(type.Name);
foreach (MethodInfo method in type.GetMethods())
{
tnode.Nodes.Add(method.Name);
}
treeView1.Nodes.Add(tnode);
}https://stackoverflow.com/questions/6549860
复制相似问题