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

标签 c# .net generics reflection .net-4.0

假设我有以下内容:

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 项目。

最佳答案

类型系统不允许您执行此操作。

您可以使用反射:

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

关于c# - 从泛型类型参数获取类的静态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18315885/

相关文章:

c# - 了解异常 "An entity object cannot be referenced by multiple instances of IEntityChangeTracker."

c# - MEF 不适用于 Windows 8.1 或更高版本的设备

c# - 在泛型类 <T,U> 的方法中比较 T 的两个变量(从 C++ 到 C# 的代码移植)

java - java中子类的泛型

java - 根据参数化类型从工厂检索实例

c# - 如何创建旨在通过电子邮件共享的 byte[] 图像

C# 登录页面。 SQL 数据库路径

c# - 页面内容不显示在框架中,而是显示页面对象名称

.net - 拥有多个 DLL 好还是单个大 DLL 好?

.net - 探测 privatePath 和子目录