2015-06-19 124 views
1

我将另一个项目中的单元测试方法调用到窗体列表中。 但是我得到'ToString','Equals'等等以及测试方法。在调用单元测试方法时,只有单元测试方法没有显示在列表框上

这是我的代码:

public Form1() 
{ 
    InitializeComponent(); 
    FillListView(); 
} 

public void FillListView() 
{ 
    MethodInfo[] methodInfoFT = typeof(UnitTestProject1.UnitTest1) 
     .GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod); 

    foreach (MethodInfo methodInfo in methodInfoFT) 
    { 
     listBox1.Items.Add(methodInfo.Name); 
    } 
} 

这就是我得到:
Image

+0

的可能重复[在.NET中,可以使用反射来获取类的所有非继承的方法?(http://stackoverflow.com/questions/5880819/in-net-can-you -use-reflection-to-get-all-non-inherited-methods-of-a-class) – cubrr

+0

我试图只在绑定中声明,但它没有解决 –

+0

它适用于我。显示你的尝试。 – cubrr

回答

0

您需要使用DeclaredOnly结合标志,以确保您只检索在类中定义的方法。

MethodInfo[] methodInfoFT = typeof(UnitTestProject1.UnitTest1) 
    .GetMethods(BindingFlags.Public | BindingFlags.Instance | 
       BindingFlags.InvokeMethod | BindingFlags.DeclaredOnly); 
+0

非常感谢大卫。 –