问题描述
新的反射 API 引入了 TypeInfo
类:
https://docs.microsoft.com/en-us/dotnet/api/system.reflection.typeinfo
The new reflection API introduces the TypeInfo
class:
https://docs.microsoft.com/en-us/dotnet/api/system.reflection.typeinfo
我可以通过编写
TypeInfo typeInfo = typeof(Car).GetTypeInfo();
现在,如果我只有一个 TypeInfo
实例怎么办?我如何获得它所指的 Type
?我可以写吗
Now, what if I just have a TypeInfo
instance? How do I get the Type
it's referring to? Can I just write
Type type = typeInfo.GetType();
或者这会返回一个等于 typeof(TypeInfo)
的 type
吗?
Or will this return a type
that is equal to typeof(TypeInfo)
?
推荐答案
如果你调用typeInfo.GetType()
,你确实会得到typeInfo对象的执行时间类型
指的是 - 所以一些从 TypeInfo
派生的具体类型.
If you call typeInfo.GetType()
, you will indeed get the execution-time type of the object that typeInfo
refers to - so some concrete type derived from TypeInfo
.
您需要 TypeInfo.AsType()
:
将当前类型作为 Type 对象返回.
所以你的代码是:
Type type = typeInfo.AsType();
或者,如评论中所述,我从未注意到的东西:TypeInfo
派生自 Type
!所以只需使用:
Or, as noted in comments, something I'd never noticed: TypeInfo
derives from Type
! So just use:
Type type = typeInfo;
这篇关于.NET Framework:从 TypeInfo 获取类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!