I cannot fully understand when to use one or another. They are so similar that it's confusing me every now and them. When it comes to reflection, I don't know whether to use the plain Type or TypeInfo.
.NET Framework itself adds more confusion with things like assembly.DefinedTypes. It retrieves an IEnumerable<TypeInfo> where I supposed it would be of IEnumerable<Type>. Also, there is a typeInfo.AsType() method. What's the meaning of that? are they interchangeable?
Moreover, they have methods that are really similar.
It seems that TypeInfo is like a more powerful version of the classic Type. Am I wrong?
From the MSDN docs:
So the
Typeprovides a shallower representation of the object data, i.e, providing the name of the type as a string.Where as
TypeInfoprovides a richer representation of the type including lists of members, implemented interfaces, and the base type.The differences are explained in greater detail here.