IsGeneric() public static method

public static IsGeneric ( string serializedTypeString ) : bool
serializedTypeString string
return bool
コード例 #1
0
ファイル: SerializedType.cs プロジェクト: wensincai/Unity5.4
 public static Type FromString(string serializedTypeString)
 {
     if (string.IsNullOrEmpty(serializedTypeString) || SerializedType.IsGeneric(serializedTypeString))
     {
         return(null);
     }
     return(Type.GetType(SerializedType.SplitTypeString(serializedTypeString).typeName, true));
 }
コード例 #2
0
ファイル: SerializedType.cs プロジェクト: wensincai/Unity5.4
 private static SerializedType.SerializedTypeData SplitTypeString(string serializedTypeString)
 {
     if (string.IsNullOrEmpty(serializedTypeString))
     {
         throw new ArgumentException("Cannot parse serialized type string, it is empty.");
     }
     SerializedType.SerializedTypeData result;
     result.isGeneric       = SerializedType.IsGeneric(serializedTypeString);
     result.typeName        = serializedTypeString.Substring(0, serializedTypeString.IndexOf('#'));
     result.genericTypeName = serializedTypeString.Substring(result.typeName.Length + 1, serializedTypeString.IndexOf('#', result.typeName.Length + 1) - result.typeName.Length - 1);
     return(result);
 }
コード例 #3
0
ファイル: SerializedType.cs プロジェクト: wensincai/Unity5.4
        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.");
        }