2013-08-19 124 views
2

說我有以下幾點:獲取類的靜態屬性

public class GetById<TEntity> : where TEntity : Entity 
{ 
    public Guid EntityId { get; set; } 

    public TEntity Execute() 
    { 
     // Get the entity here 
    } 
} 

我想要做的是檢索通過TEntity傳遞的類的特定靜態屬性的值。該屬性在實體基類中不存在,但它作爲將作爲TEntity參數傳入的任何不同派生類的屬性存在。我在SO上發現了類似的問題,但他們都假設該屬性也是在基類中聲明的。

有沒有通過反射或類似的方式來做到這一點?這是一個.NET 4.0項目。

+0

檢查這個博客帖子:使用C#動態調用靜態成員(http://blogs.msdn.com/b/davidebb/archive/2009/10/ 23 /使用-C-動態通話靜電-members.aspx) – MarcinJuraszek

回答

3

類型系統不允許你這樣做。

您可以使用反射:

typeof(TEntity).GetProperty("MyProp", BindingFlags.Public | BindingFlags.Static)