Для типов перечислений, не допускающих значения NULL, проверка следующая:
Код: Выделить всё
isEnum = classProperty.Type is INamedTypeSymbol namedType2 &&
namedType2.EnumUnderlyingType != null;
Код: Выделить всё
isNullable = classProperty.Type is INamedTypeSymbol namedType &&
namedType.NullableAnnotation == NullableAnnotation.Annotated;
Обновления:
То же самое относится и к типам свойств, таким как int? на самом деле. И я ожидаю, что это будет Nullable или что-то в этом роде. На самом деле я вижу, что тип является универсальным (
Код: Выделить всё
IsGenericType == true
Код: Выделить всё
TypeArguments[0]
Подробнее здесь: https://stackoverflow.com/questions/787 ... -generator