public IDependencyAnalyzerResult Filter(IDependencyAnalyzerResult result) { var filteredResult = new Dictionary <string, AssemblyReferenceInfo>(result.Assemblies.Count); foreach (var reference in result.Assemblies) { if (reference.Value.ReferencedBy.ToList().Exists(e => e.AssemblyName.Name == "netstandard")) { var filteredReference = new AssemblyReferenceInfo(reference.Value.AssemblyName); reference.Value.References .ToList() .ForEach(filteredReference.AddReference); reference.Value.ReferencedBy .Where(referencedBy => referencedBy.AssemblyName.Name != "netstandard") .ToList() .ForEach(filteredReference.AddReferencedBy); } else { filteredResult.Add(reference.Key, reference.Value); } } return(new DependencyAnalyzerResult(result.AnalyzedFiles, filteredResult)); }
public AssemblyReferenceInfo[] CreateCache(string[] filePaths) { WriteDebugInfo(); if (filePaths == null) { throw new ArgumentNullException(nameof(filePaths)); } var assemblyReferenceInfos = new List <AssemblyReferenceInfo>(filePaths.Length); foreach (var filePath in filePaths) { try { var assemblyName = AssemblyName.GetAssemblyName(filePath).EnsureNotNull(); var info = new AssemblyReferenceInfo { FilePath = filePath, AssemblyName = assemblyName }; assemblyReferenceInfos.Add(info); } catch (Exception ex) when(!ex.IsFatal()) { Trace.TraceWarning($@"Error loading the file {filePath.ToUIString()} as assembly: {ex}"); } } return(assemblyReferenceInfos.ToArray()); }
protected virtual void VisualizeAssemblyReferenceInfo(AssemblyReferenceInfo assemblyReferenceInfo) { if (assemblyReferenceInfo == null) { throw new ArgumentNullException(nameof(assemblyReferenceInfo)); } ConsoleColor statusColor; switch (assemblyReferenceInfo.AssemblySource) { case AssemblySource.NotFound: statusColor = AssemblyNotFoundColor; break; case AssemblySource.Local: statusColor = AssemblyLocalColor; break; case AssemblySource.GlobalAssemblyCache: statusColor = AssemblyGlobalAssemblyCacheColor; break; case AssemblySource.Unknown: statusColor = AssemblyUnknownColor; break; default: throw new InvalidEnumArgumentException(AsmSpy_CommandLine.Invalid_AssemblySource); } Console.ForegroundColor = statusColor; Console.WriteLine(AsmSpy_CommandLine.ConsoleVisualizer_VisualizeAssemblyReferenceInfo____0_, assemblyReferenceInfo.AssemblyName); Console.Write(AsmSpy_CommandLine.Source_, assemblyReferenceInfo.AssemblySource); if (assemblyReferenceInfo.AssemblySource != AssemblySource.NotFound) { Console.WriteLine(AsmSpy_CommandLine.Location_, assemblyReferenceInfo.ReflectionOnlyAssembly.Location); } else { Console.WriteLine(); } foreach (var referer in assemblyReferenceInfo.ReferencedBy.OrderBy(x => x.AssemblyName.ToString())) { if (!string.IsNullOrEmpty(ReferencedStartsWith) && !referer.AssemblyName.Name.ToUpperInvariant().StartsWith(ReferencedStartsWith.ToUpperInvariant(), StringComparison.OrdinalIgnoreCase)) { continue; } Console.ForegroundColor = statusColor; Console.Write(AsmSpy_CommandLine.ConsoleVisualizer_VisualizeAssemblyReferenceInfo______0_, assemblyReferenceInfo.AssemblyName.Version); Console.ForegroundColor = ConsoleColor.White; Console.Write(AsmSpy_CommandLine.by); Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine(AsmSpy_CommandLine.ConsoleVisualizer_VisualizeAssemblyReferenceInfo__0_, referer.AssemblyName); } }
protected virtual void VisualizeAssemblyReferenceInfo(AssemblyReferenceInfo assemblyReferenceInfo) { if (assemblyReferenceInfo == null) { throw new ArgumentNullException(nameof(assemblyReferenceInfo)); } ConsoleColor statusColor; switch (assemblyReferenceInfo.AssemblySource) { case AssemblySource.NotFound: statusColor = assemblyReferenceInfo.HasAlternativeVersion ? AssemblyAlternativeColor : AssemblyNotFoundColor; break; case AssemblySource.Local: statusColor = AssemblyLocalColor; break; case AssemblySource.GlobalAssemblyCache: statusColor = AssemblyGlobalAssemblyCacheColor; break; case AssemblySource.Unknown: statusColor = AssemblyUnknownColor; break; default: throw new InvalidEnumArgumentException(AsmSpy_CommandLine.Invalid_AssemblySource); } Console.ForegroundColor = statusColor; Console.WriteLine(AsmSpy_CommandLine.ConsoleVisualizer_VisualizeAssemblyReferenceInfo____0_, assemblyReferenceInfo.AlternativeFoundVersion?.AssemblyName ?? assemblyReferenceInfo.AssemblyName); Console.Write(AsmSpy_CommandLine.Source_, assemblyReferenceInfo.AssemblySource); if (assemblyReferenceInfo.AssemblySource != AssemblySource.NotFound) { Console.WriteLine(AsmSpy_CommandLine.Location_, assemblyReferenceInfo.ReflectionOnlyAssembly.Location); } else { if (assemblyReferenceInfo.HasAlternativeVersion) { Console.Write(AsmSpy_CommandLine.AlternativeVersionFound); } Console.WriteLine(); } foreach (var referer in assemblyReferenceInfo.ReferencedBy.OrderBy(x => x.AssemblyName.ToString())) { Console.ForegroundColor = statusColor; Console.Write(AsmSpy_CommandLine.ConsoleVisualizer_VisualizeAssemblyReferenceInfo______0_, assemblyReferenceInfo.AssemblyName.Version); Console.ForegroundColor = ConsoleColor.White; Console.Write(AsmSpy_CommandLine.by); Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine(AsmSpy_CommandLine.ConsoleVisualizer_VisualizeAssemblyReferenceInfo__0_, referer.AssemblyName); } }