/// <summary> /// Gets the models name recursive. /// </summary> /// <param name="language">The language.</param> /// <param name="typeInstance">The type instance.</param> /// <returns></returns> private static IList <string> GetModelsNameRecursive(Language language, TypeInstance typeInstance) { List <string> list = new List <string>(); // Si c'est un type de base, on ne le prend pas if (typeInstance.TypeKind != TypeKind.Type) { return(list); } // Si c'est un générique, on cherche dans ses arguments les types potentiels if (typeInstance.IsGenericType) { foreach (TypeInstance genericType in typeInstance.GenericArguments) { list.AddRange(GetModelsNameRecursive(language, genericType)); } } else { string name = typeInstance.GetLookupName(language); if (!name.StartsWith("System.")) { // On s'assure de ne pas prendre un type système if (Type.GetType(String.Format("System.{0}", name), false) == null) { list.Add(name); } } } return(list); }