我正在开展一个项目,我必须通过数据模型来反映数据模型中每个属性的类型。除了泛型集合之外,我的代码适用于所有情况。我必须能够知道IL在IList中的含义。
我有以下数据模型
public class ArrryOfObjects
{
public NestModelNestedClass NestClass { get; set; }
public int IntObject { get; set; }
public IList<NestModelNestedClass> ListOfObjects { get; set; }
}
我已经看过几个例子,比如https://stackoverflow.com/a/1043778/136717如何做到这一点,但他们使用type.GetGenericTypeDefinition()
来获取类型。但是在我的示例中我不能使用它,因为'type.IsGeneric.Parameter'是错误的。
我查看了类型文档,但不了解如何执行此操作。
答案 0 :(得分:5)
试试这个:
var t = typeof(ArrryOfObjects)
.GetProperty("ListOfObjects")
.PropertyType
.GetGenericArguments()[0];
这是它的工作原理:
ArrryOfObjects
... ListOfObjects
... typeof(NestModelNestedClass)
P.S。 GetGenericTypeDefinition
获取typeof(IList<>)
,IList<NestModelNestedClass>
是通用实例的泛型类型。