使用反射检查属性是否为“ T”

时间:2019-05-31 14:10:06

标签: c# .net .net-core

我正在一个项目中,我需要将.net类“翻译”为打字稿,但我正在为以下问题苦苦挣扎:

我试图在运行时知道属性AnotherClass.property1.genericProperty是否为类型T,但是我总是将MyClass作为类型,检查它的正确方法是什么?

class MyGenericClass<T>
{
    public T genericProperty { get; set; }
}

class AnotherClass
{
    public MyGenericClass<MyClass> property1 { get; set; }
    public MyClass regularProperty { get; set; }
}

我希望的打字稿:

interface MyGenericClass<T> {
    genericProperty: T;
}

我现在正在得到什么:

interface MyGenericClass<T> {
    genericProperty: MyClass;
}

1 个答案:

答案 0 :(得分:0)

在@Mark Gravell评论之后,我能够解决我的问题,我做了什么:

已使用

AnotherClass.property1.PropertyType.GetGenericTypeDefinition().GetProperty("genericProperty").PropertyType.Name

代替

AnotherClass.property1.PropertyType.GetProperty("genericProperty").PropertyType.Name

现在我得到了预期的结果。