2015-04-17 61 views
0

我迭代類的方法通過反射C#排除getter和setter和產生構件

System.Data.Entity.DbContext

這樣的:

var methods = t.GetMethods(BindingFlags.Public | BindingFlags.Instance); 

現在方法陣列中的第一種方法是

get_Database

返回類型的對象

System.Data.Entity.Database

正如你看到的,我只要求與bindingflag實例和公共方法。 如果我看一看在VS中的DbContext類,我不能找到一個方法

get_Database

它從何而來?

+0

或者它是屬性數據庫的吸氣劑? – Legends

回答

0
!m.IsSpecialName 

這裏是重要的東西。

你必須應用過濾器來排除這些,我的情況我也想排除私人成員。

var methods = t.GetMethods(BindingFlags.Public | 
          BindingFlags.NonPublic | 
          BindingFlags.Instance | 
          BindingFlags.Static) 
.Where(m => !m.IsSpecialName && m.IsPrivate == false).ToList();