Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 系统。反射没有方法_C#_.net_Reflection_System.reflection - Fatal编程技术网

C# 系统。反射没有方法

C# 系统。反射没有方法,c#,.net,reflection,system.reflection,C#,.net,Reflection,System.reflection,我试图枚举程序集中的所有方法,并将它们添加到树视图中的节点: private void bOpen_Click(object sender, EventArgs e) { var ofd = new OpenFileDialog(); if (ofd.ShowDialog() != DialogResult.OK) return; var asm = Assembly.LoadFile(ofd.FileNa

我试图枚举程序集中的所有方法,并将它们添加到树视图中的节点:

    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。我缺少什么吗?

您正在程序集中的模块中查找方法,而不是程序集中的类型。将循环更改为:

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);
}

您在程序集中的模块中查找方法,而不是在程序集中的类型中查找方法。将循环更改为:

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);
}
你可能对……感兴趣你可能对……感兴趣