protected static void SetBaseTypesForTypeDeclaration(ClassesAndStructsAndInterfaces csi, ICSharpCode.NRefactory.CSharp.TypeDeclaration td) { ParameterValidator.ThrowIfArgumentNull(td, "td"); foreach (var i in td.BaseTypes) { SimpleType st = i as SimpleType; if (st != null) { string generics = null; if (st.TypeArguments != null && st.TypeArguments.Count > 0) { generics = st.TypeArguments.SeparateBy(", ").ToString(); } csi.BaseTypes.Add(st.IdentifierToken.Name + ((generics != null) ? ( "<" + generics + ">") : "")); } } }
private static bool AddToNotDefaultReferencedTypes(ClassesAndStructsAndInterfaces csi, string type) { ParameterValidator.ThrowIfArgumentNullOrEmpty(type, "type"); IEnumerable<string> systemTypes = typeof(bool).Assembly.GetTypes().Where(x => !string.IsNullOrEmpty(x.Namespace) && x.Namespace.StartsWith("System")).Select(x => x.Name.ToLower()); string typeLower = type.ToLower(); typeLower = AdjustTypeMismatch(typeLower); if (!csi.ReferencedTypes.Contains(type) && !systemTypes.Contains(typeLower) && !type.StartsWith("ICSharpCode")) { csi.ReferencedTypes.Add(type); return true; } return false; }