2011-07-01 5 views
1

어떤 방법 :하는 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.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); 
     } 
    } 

문제는 어떤 방법이 어떤 모듈을 받고 없다는 것입니다. module.GetMethods() 이후 treeview와 아무 관련이 없다는 것을 알고 있습니다. 길이는 0을 반환합니다. 제가 누락 된 것이 있습니까?

+0

http://code.google.com/p/fseye/ –

답변

5

조립품의 유형 대신 모듈에있는 방법을 찾고 있습니다. 루프를 다음으로 변경하십시오.

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); 
} 
관련 문제