Exemplo n.º 1
0
        static internal AssemblyReport CreateAssemblyReportFromRTA(IAssembly assembly, RapidTypeAnalysis rta)
        {
            AssemblyReport report = new AssemblyReport(assembly);

            int totalTypes   = 0;
            int totalFields  = 0;
            int totalMethods = 0;

            foreach (var t in assembly.GetAllTypes())
            {
                totalTypes++;
                if (rta.ReachableTypes().Contains(t) == false)
                {
                    report.UnreachableTypes.Add(t);
                    //Console.WriteLine("Unused type {0}", t);
                }
                else
                {
                    report.ReachableTypes.Add(t);
                }

                if (t.IsClass || t.IsStruct)
                {
                    foreach (var f in t.Fields)
                    {
                        totalFields++;
                        if (rta.ReachableFields().Contains(f) == false)
                        {
                            report.UnreachableFields.Add(f);
                            //Console.WriteLine("Unused field {0}", f);
                        }
                        else
                        {
                            report.ReachableFields.Add(f);
                        }
                    }

                    foreach (var m in t.Methods)
                    {
                        if (!m.IsAbstract)
                        {
                            totalMethods++;
                            if (rta.MethodIsReachable(m) == false)
                            {
                                report.UnreachableMethods.Add(m);
                                //Console.WriteLine("Unreachable method {0}", m);
                            }
                            else
                            {
                                report.ReachableMethods.Add(m);
                            }
                        }
                    }
                }
            }

            return(report);
        }
Exemplo n.º 2
0
        static internal AssemblyReport CreateAssemblyReportFromPath(IAssembly assembly, string pathToReportsDirectory, DocumentationCommentDefinitionIdStringMap idMap)
        {
            AssemblyReport report = new AssemblyReport(assembly);

            string assemblyReportDirectory = GetAssemblyReportDirectory(assembly, pathToReportsDirectory);

            report.reachableTypes.UnionWith(ReadDefinitionsFromIdentifierFile <ITypeDefinition>(assemblyReportDirectory + @"\" + ReachableTypesFileName, idMap));
            report.unreachableTypes.UnionWith(ReadDefinitionsFromIdentifierFile <ITypeDefinition>(assemblyReportDirectory + @"\" + UnusedTypesFileName, idMap));

            report.reachableMethods.UnionWith(ReadDefinitionsFromIdentifierFile <IMethodDefinition>(assemblyReportDirectory + @"\" + ReachableMethodsFileName, idMap));
            report.unreachableMethods.UnionWith(ReadDefinitionsFromIdentifierFile <IMethodDefinition>(assemblyReportDirectory + @"\" + UnusedMethodsFileName, idMap));

            report.reachableFields.UnionWith(ReadDefinitionsFromIdentifierFile <IFieldDefinition>(assemblyReportDirectory + @"\" + ReachableFieldsFileName, idMap));
            report.unreachableFields.UnionWith(ReadDefinitionsFromIdentifierFile <IFieldDefinition>(assemblyReportDirectory + @"\" + UnusedFieldsFileName, idMap));

            return(report);
        }