private static ToString ( SerializedTypeData data ) : string | ||
data | SerializedTypeData | |
return | string |
public static string ToString(Type t) { SerializedType.SerializedTypeData data = default(SerializedType.SerializedTypeData); if (t == null) { return(string.Empty); } data.typeName = string.Empty; data.isGeneric = t.ContainsGenericParameters; if (data.isGeneric && t.IsGenericType) { data.typeName = SerializedType.ToShortTypeName(t.GetGenericTypeDefinition()); } else if (data.isGeneric && t.IsArray) { data.typeName = "T[]"; } else if (data.isGeneric) { data.typeName = "T"; } else { data.typeName = SerializedType.ToShortTypeName(t); } return(SerializedType.ToString(data)); }
public static string SetGenericArgumentType(string serializedTypeString, Type type) { if (SerializedType.IsGeneric(serializedTypeString)) { SerializedType.SerializedTypeData data = SerializedType.SplitTypeString(serializedTypeString); data.genericTypeName = data.typeName; data.isGeneric = false; string typeName = data.typeName; if (typeName != null) { if (SerializedType.< > f__switch$map1 == null) { SerializedType.< > f__switch$map1 = new Dictionary <string, int>(2) { { "T", 0 }, { "T[]", 1 } }; } int num; if (SerializedType.< > f__switch$map1.TryGetValue(typeName, out num)) { if (num == 0) { data.typeName = SerializedType.ToShortTypeName(type); goto IL_105; } if (num == 1) { data.typeName = SerializedType.ToShortTypeName(type.MakeArrayType()); goto IL_105; } } } data.typeName = SerializedType.ToShortTypeName(Type.GetType(data.typeName, true).GetGenericTypeDefinition().MakeGenericType(new Type[] { type })); IL_105: return(SerializedType.ToString(data)); } if (SerializedType.IsBaseTypeGeneric(serializedTypeString)) { throw new ArgumentException("Trying to set a different generic type. Reset old one first."); } throw new ArgumentException("Trying to set generic argument type for non generic type."); }
public static string ResetGenericArgumentType(string serializedTypeString) { if (string.IsNullOrEmpty(serializedTypeString)) { throw new ArgumentException("Cannot reset generic argument type for null type."); } SerializedType.SerializedTypeData data = SerializedType.SplitTypeString(serializedTypeString); if (string.IsNullOrEmpty(data.genericTypeName)) { throw new ArgumentException("Cannot reset generic argument type, previous generic type unknown."); } data.typeName = data.genericTypeName; data.isGeneric = true; data.genericTypeName = string.Empty; return(SerializedType.ToString(data)); }