2013-08-19 78 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)