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 + ">") : ""));
                }
            }
        }
Example #2
0
        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;
        }