2011-03-21 58 views
0

我要過濾屬性的集合發現是EntityCollection<>型的,像這樣所有屬性:的.Net如何比較通用的所屬類別

entity.GetProperties().Where(p => p.PropertyType == typeof(EntityCollection<>)); 

上面的代碼將永遠不返回任何結果,因爲性能會EntityCollection<TEntity>其中TEntityEntityObject

我也試過使用EntityCollection<EntityObject>沒有成功。

我不在乎TEntity的具體類型,我只是想要類型爲EntityCollection<>的屬性,而不管TEntity的類型如何。

這看起來應該很簡單,我錯過了一個竅門嗎? :-)

回答

1

嗯,你可以使用:

Where(p => p.PropertyType.IsGenericType && 
      p.PropertyType.GetGenericTypeDefinition() == typeof(EntityCollection<>)) 

是你以後在做什麼?請注意,這不會找到亞型EntityCollection<TEntity>

+0

感謝喬恩,這正是我之後:-) – 2011-03-21 13:38:31