public static void Shortify(CodeTypeReference typeReference, Type type, CodeNamespaceImportCollection imports) { if (typeReference.ArrayRank > 0) { Shortify(typeReference.ArrayElementType, type, imports); return; } if (type.Namespace != null && imports.Cast<CodeNamespaceImport>() .Any(cni => cni.Namespace == type.Namespace)) { var prefix = type.Namespace + '.'; if (prefix != null) { var pos = typeReference.BaseType.IndexOf(prefix); if (pos == 0) { typeReference.BaseType = typeReference.BaseType.Substring(prefix.Length); } } } }
/// <summary> /// Visits a <see cref="CodeNamespaceImportCollection"/>. /// </summary> /// <param name="codeNamespaceImportCollection">The <see cref="CodeNamespaceImportCollection"/> to visit.</param> protected virtual void VisitCodeNamespaceImportCollection(CodeNamespaceImportCollection codeNamespaceImportCollection) { // Visit all of the CodeNamespaceImport items in the collection. foreach (CodeNamespaceImport item in codeNamespaceImportCollection.Cast<CodeNamespaceImport>()) { this.VisitCodeNamespaceImport(item); } }