我正在一个项目中,我必须通过数据模型进行反思,以找出数据模型中每个属性的类型。我的代码适用于除通用集合以外的所有情况。我必须能够知道IList中的T。
我有以下数据模型
public class ArrryOfObjects
{
public NestModelNestedClass NestClass { get; set; }
public int IntObject { get; set; }
public IList<NestModelNestedClass> ListOfObjects { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已经看到了几个示例,例如/sf/answers/73064491/,该演示了如何执行此操作,但是它们使用type.GetGenericTypeDefinition()来获取类型。但是在我的示例中,我无法使用它,因为'type.IsGeneric.Parameter'为false。
我已经阅读了类型文档,但不了解如何执行此操作。
尝试这个:
var t = typeof(ArrryOfObjects)
.GetProperty("ListOfObjects")
.PropertyType
.GetGenericArguments()[0];
Run Code Online (Sandbox Code Playgroud)
它是这样工作的:
ArrryOfObjects... 的类型ListOfObjects... 的属性typeof(NestModelNestedClass)PS GetGenericTypeDefinition使您获得typeof(IList<>),其通用类型IList<NestModelNestedClass>是通用实例。
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |