Teste se o parâmetro suporta reflexão nula

bool canBeNull = !type.IsValueType || (Nullable.GetUnderlyingType(type) != null);
Annoying Ape