Q. How do I determine if a type is a value type or reference type?
A. You need to use the infamous IsNonSelfDescribingAggrType property.
Value types don't have vtables, so they are aggregate types that are not self descriptive (at least so long as they are unboxed).