问题描述
新的反射API引入了 TypeInfo
类:
The new reflection API introduces the TypeInfo
class:https://msdn.microsoft.com/en-us/library/system.reflection.typeinfo(v=vs.110).aspx
我可以获得 Type的
(例如,一辆 TypeInfo
实例汽车
),通过写
I can get a TypeInfo
instance of a Type
(say, a Car
) by writing
TypeInfo typeInfo = typeof(Car).GetTypeInfo();
现在,如果我只有 TypeInfo
实例,如何获取其引用的 Type
?我可以只写
Now, what if I just have a TypeInfo
instance, how do I get the Type
its refering to? Can I just write
Type type = typeInfo.GetType();
或者这将返回类型
等于 typeof(TypeInfo)
?
推荐答案
如果调用 typeInfo.GetType()
,您的确会得到 typeInfo
所引用的objec的执行时类型-因此有些具体从 TypeInfo
派生的类型。
If you call typeInfo.GetType()
, you will indeed get the execution-time type of the objec that typeInfo
refers to - so some concrete type derived from TypeInfo
.
您要 TypeInfo.AsType()
:
所以您的代码将是:
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获取类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!