How do I get the actual type of T in a generic List at run time using reflection?
It depends on what exactly you’re asking:
While writing code inside a generic type Blah, how do I get the reflection type T?
Answer: typeof(T)
I have an object which contains a List for some type T. How do I retrieve the type T via reflection?
Short answer: myList.GetType().GetGenericArguments()[0]
Long answer:
var objectType = myList.GetType();
if (!objectType.IsGenericType() ||
objectType.GetGenericTypeDefinition() != typeof(List<>))
{
throw new InvalidOperationException(
"Object is not of type List for any T");
}
var elementType = objectType.GetGenericArguments()[0];