Teste se o parâmetro suporta reflexão nula
bool canBeNull = !type.IsValueType || (Nullable.GetUnderlyingType(type) != null);
Annoying Ape
bool canBeNull = !type.IsValueType || (Nullable.GetUnderlyingType(type) != null);