示例:
public class MyClass : AbstractClass<UserDTO>
{
public MyClass()
{
}
public string Property1 { get; set; }
public string Property2 { get; set; }
}
是否可以通过检查UserDTO对象来获取MyClass的类型?如果有,怎么样? TIA。
答案 0 :(得分:1)
我想你问的是:
在
AbstractClass<T>
中是否存在T
类型为UserDTO
的方式,我可以确定X
<的类class X : AbstractClass<UserDTO>
的类型/ p>
如果这确实是你的问题,那么简短的回答是“是”。实现它的途径有点令人费解。
第一步,使用例如https://stackoverflow.com/a/4692463/7122获取系统中所有类型的列表。
下一步,对于每种类型,使用BaseType
属性来获取其父类型。如果该类型为AbstractClass
,请检查其GenericTypeArguments
属性以查看它是否为UserDTO
。如果是,那就是你的类型。
但是,不止一个类可能会从AbstractClass<UserDTO>
继承,因此您必须检查所有类型以检查它,而不是在第一个匹配时停止。
答案 1 :(得分:0)
如果你有一个UserDTO类的实例而没有别的,那么我看不出你能够看到拥有的实例或MyClass类型的任何方式 - 你如何区分它和一个UserDTO在MyClass上?遗憾