Type和TypeInfo之间有什么区别或关系?

时间:2015-06-08 00:36:04

标签: .net reflection types

我无法完全理解何时使用这一个或另一个。他们非常相似,现在和他们一起让我感到困惑。说到反射,我不知道是使用普通的Type还是TypeInfo。

.NET Framework本身会增加 property a2b_notA; @(posedge clk) ($rose (a) ##0 (a throughout b)) |=> (~a); endproperty a_a2b_notA: assert property (a2b_notA); 之类的混淆。它检索assembly.DefinedTypes,我认为它应该是IEnumerable<TypeInfo>。此外,还有IEnumerable<Type>方法。那是什么意思?他们可以互换吗?

此外,他们的方法非常相似。

似乎TypeInfo就像经典typeInfo.AsType()的更强大版本。我错了吗?

谢谢!

1 个答案:

答案 0 :(得分:16)

来自MSDN docs

  

TypeInfo对象表示类型定义本身,而a   Type对象表示对类型定义的引用。得到一个   TypeInfo对象强制加载包含该类型的程序集。   相比之下,您可以无需操作Type对象   要求运行时加载它们引用的程序集。

因此Type提供了对象数据的浅层表示,即将类型的名称作为字符串提供。

TypeInfo提供更丰富的类型表示,包括成员列表,已实现的接口和基本类型。

更详细地解释了差异here