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

Sup*_*JMN 25 .net reflection types

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

.NET Framework本身增加了更多的混淆assembly.DefinedTypes.它检索到IEnumerable<TypeInfo>我认为它的位置IEnumerable<Type>.此外,还有一种typeInfo.AsType()方法.那是什么意思?他们可以互换吗?

而且,他们的方法非常相似.

似乎TypeInfo就像是经典的更强大的版本Type.我错了吗?

谢谢!

Rag*_*lly 18

来自MSDN文档:

TypeInfo对象表示类型定义本身,而Type对象表示对类型定义的引用.获取TypeInfo对象会强制加载包含该类型的程序集.相比之下,您可以操作Type对象,而无需运行时加载它们引用的程序集.

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

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

这里将更详细地解释这些差异.

  • 请注意,根据https://blogs.msdn.microsoft.com/dotnet/2016/05/27/making-it-easier-to-port-to-net-core/和http://www.lifehacker.com .au/2016/05/microsoft-reconsiders-reflection-serialization-changes-for-net-core /这是针对.Net核心的,但微软最终还是推翻了它. (2认同)