public DependencyFinderEngineHelper(MetadataReader metadataReader, string assemblyPath) { _reader = metadataReader; _assemblyLocation = assemblyPath; MemberDependency = new List<MemberDependency>(); CallingAssembly = _reader.GetAssemblyInfo(assemblyPath); // Get assembly info var assemblyDefinition = _reader.GetAssemblyDefinition(); _currentAssemblyInfo = _reader.FormatAssemblyInfo(assemblyDefinition); _currentAssemblyName = _reader.GetString(assemblyDefinition.Name); }
public DependencyFinderEngineHelper(IDependencyFilter assemblyFilter, MetadataReader metadataReader, IAssemblyFile file) { _assemblyFilter = assemblyFilter; _reader = metadataReader; _assemblyLocation = file.Name; MemberDependency = new List<MemberDependency>(); CallingAssembly = new AssemblyInfo { AssemblyIdentity = metadataReader.FormatAssemblyInfo().ToString(), FileVersion = file.Version ?? string.Empty, TargetFrameworkMoniker = metadataReader.GetTargetFrameworkMoniker() ?? string.Empty }; // Get assembly info var assemblyDefinition = _reader.GetAssemblyDefinition(); _currentAssemblyInfo = _reader.FormatAssemblyInfo(assemblyDefinition); _currentAssemblyName = _reader.GetString(assemblyDefinition.Name); }
/// <summary> /// Add all assemblies that were referenced to the referenced assembly dictionary. By default, /// we add every referenced assembly and will remove the ones that are actually referenced when /// all submitted assemblies are processed. /// </summary> /// <param name="metadataReader"></param> private void AddReferencedAssemblies(MetadataReader metadataReader) { var assemblyReferences = metadataReader.AssemblyReferences .Select(metadataReader.GetAssemblyReference) .Select(metadataReader.FormatAssemblyInfo); var assemblyName = metadataReader.FormatAssemblyInfo(); foreach (var reference in assemblyReferences) { _unresolvedAssemblies.AddOrUpdate( reference.ToString(), new HashSet<string>(StringComparer.Ordinal) { assemblyName.ToString() }, (key, existing) => { lock (existing) { existing.Add(assemblyName.ToString()); } return existing; }); } }