2015-06-19 82 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

非常感謝大衛。 –