コード例 #1
0
 private static string generateArray(string typeString)
 {
     typeString = Regex.Replace(typeString, "(?<type>[^\\[]*)(?<rank>\\[,*\\])", delegate(Match m)
     {
         string str   = SerializationTypeExtension.generateTypeString(m.Groups["type"].Value);
         string value = m.Groups["rank"].Value;
         return(str + value);
     });
     return(typeString);
 }
コード例 #2
0
 private static string generateTypeString(string typeString)
 {
     if (SerializationTypeExtension._builtInTypeStrings.ContainsKey(typeString))
     {
         typeString = SerializationTypeExtension._builtInTypeStrings[typeString];
     }
     else
     {
         typeString = SerializationTypeExtension.generateGenericArguments(typeString);
         typeString = SerializationTypeExtension.generateArray(typeString);
     }
     return(typeString);
 }
コード例 #3
0
 private static string generateGenericArguments(string typeString)
 {
     string[] separator = new string[1]
     {
         ", "
     };
     typeString = Regex.Replace(typeString, "<(?<arg>.*)>", delegate(Match m)
     {
         string text = SerializationTypeExtension.generateTypeString(m.Groups["arg"].Value);
         int num     = text.Split(separator, StringSplitOptions.None).Length;
         return("`" + num + "[" + text + "]");
     });
     return(typeString);
 }
コード例 #4
0
        public static Type ToType(this string typeString)
        {
            string text = SerializationTypeExtension.generateTypeString(typeString);
            Type   type = Type.GetType(text);

            if (type != null)
            {
                return(type);
            }
            Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
            for (int i = 0; i < assemblies.Length; i++)
            {
                type = assemblies[i].GetType(text);
                if (type != null)
                {
                    return(type);
                }
            }
            return(null);
        }