Reputation: 1828
The new reflection API introduces the TypeInfo
class:
https://learn.microsoft.com/en-us/dotnet/api/system.reflection.typeinfo
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
it's referring to? Can I just write
Type type = typeInfo.GetType();
Or will this return a type
that is equal to typeof(TypeInfo)
?
Upvotes: 15
Views: 9374
Reputation: 1500385
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
.
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;
Upvotes: 29