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); }
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); }