NET 获取真实类型: 可空类型/泛型/基础类型
泛型类型的类型为[Nullable`1 / List`1 / Dictionary`2 / Tuple`3 / ...],需要特殊处理
/// <summary> /// 获取真实类型-字符串: 可空类型/泛型/基础类型 /// </summary> /// <param name="propertyType"></param> /// <returns></returns> public static string GetRealTypeString(this Type propertyType) { var typeName = propertyType.Name; // 是否 泛型类型 if (!propertyType.IsGenericType) return typeName; // 处理类型名称,删除“`”后的文字[Nullable`1 / List`1 / Dictionary`2 / Tuple`3] typeName = typeName.Substring(0, typeName.IndexOf("`")); // Other:一定是 泛型类型定义[可空类型也是泛型-Nullable`1] var genericArr = propertyType.GetGenericArguments(); if (genericArr.IsNullOrEmpty()) return propertyType.Name; return $"{typeName}<{genericArr.Select(x => x.GetRealTypeString()).Join(", ")}>"; }