TypeDef CreateSpecialTypeDefOrNull(Type type) { BuiltInTypeDef typeDef = null; if (typeof(IEnumerable).IsAssignableFrom(type)) { if (type.IsArray && type.GetArrayRank() == 1) { var elementType = type.GetElementType(); var typeDefOfContainedType = GetOrCreateTypeDef(new QualifiedClassName(elementType), elementType); typeDef = new BuiltInTypeDef(type, "", string.Format("{0}[]", typeDefOfContainedType.FullyQualifiedTsTypeName)); } else if (!type.IsGenericType) { typeDef = new BuiltInTypeDef(type, "", "any[]"); } else if (type.IsGenericType && type.GetGenericArguments().Length == 1) { var elementType = type.GetGenericArguments()[0]; var typeDefOfContainedType = GetOrCreateTypeDef(new QualifiedClassName(elementType), elementType); typeDef = new BuiltInTypeDef(type, "", string.Format("{0}[]", typeDefOfContainedType.FullyQualifiedTsTypeName)); } } if (typeDef != null) { _types.Add(type, typeDef); } return(typeDef); }
TypeDef CreateSpecialTypeDefOrNull(Type type) { BuiltInTypeDef typeDef = null; if (typeof(IEnumerable).IsAssignableFrom(type)) { if (type.IsArray && type.GetArrayRank() == 1) { var elementType = type.GetElementType(); var typeDefOfContainedType = GetOrCreateTypeDef(new QualifiedClassName(elementType), elementType); typeDef = new BuiltInTypeDef(type, "", string.Format("{0}[]", typeDefOfContainedType.FullyQualifiedTsTypeName)); } else if (!type.IsGenericType) { typeDef = new BuiltInTypeDef(type, "", "any[]"); } else if (type.IsGenericType && type.GetGenericArguments().Length == 1) { var elementType = type.GetGenericArguments()[0]; var typeDefOfContainedType = GetOrCreateTypeDef(new QualifiedClassName(elementType), elementType); typeDef = new BuiltInTypeDef(type, "", string.Format("{0}[]", typeDefOfContainedType.FullyQualifiedTsTypeName)); } } if (typeDef != null) { _types.Add(type, typeDef); } return typeDef; }
void AddBuiltInType(BuiltInTypeDef builtInTypeDef) { _types.Add(builtInTypeDef.Type, builtInTypeDef); }