从泛型类型参数获取类的静态属性

时间:2013-08-19 14:08:03

标签: c# .net generics reflection

说我有以下内容:

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

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

我想要做的是检索通过TEntity传入的类的特定静态属性的值。此属性在Entity基类中不存在,但它作为任何不同派生类的属性存在,这些派生类将作为TEntity参数传入。我在SO上发现了类似的问题,但他们都假设该属性也在基类中声明。

有没有办法通过反思或类似的方式做到这一点?这是一个.NET 4.0项目。

1 个答案:

答案 0 :(得分:3)

类型系统不允许您这样做。

您可以使用反射:

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