The new reflection API introduces the TypeInfo
class:
https://msdn.microsoft.com/en-us/library/system.reflection.typeinfo(v=vs.110).aspx
I can get a TypeInfo
instance of a Type
(say, a Car
) by writing
TypeInfo typeInfo = typeof(Car).GetTypeInfo();
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();
Or will this return a type
that is equal to typeof(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
.
You want TypeInfo.AsType()
:
Returns the current type as a Type object.
So your code would be:
Type type = typeInfo.AsType();
Or, as noted in comments, something I'd never noticed: TypeInfo
derives from Type
! So just use:
Type type = typeInfo;
See more on this question at Stackoverflow