public override bool Equals(object obj) { AssemblyDescriptor ad = obj as AssemblyDescriptor; if (ad != null) { return(FileHash.Equals(ad.FileHash)); } return(false); }
/// <summary> /// Persist to the specified repository the specified ProcessRuntimeDescriptor /// and return the result /// </summary> /// <param name="repo"></param> /// <param name="descriptor"></param> /// <returns></returns> public static ProcessRuntimeDescriptor PersistToRepo(IRepository repo, ProcessRuntimeDescriptor descriptor) { Args.ThrowIfNull(repo, "repo"); Args.ThrowIfNull(descriptor, "descriptor"); List <AssemblyDescriptor> descriptors = new List <AssemblyDescriptor>(); foreach (AssemblyDescriptor assDescriptor in descriptor.AssemblyDescriptors) { AssemblyDescriptor saved = repo.Save(assDescriptor); descriptors.Add(saved); } descriptor.AssemblyDescriptors = descriptors.ToArray(); return(repo.Save(descriptor)); }
private static void Recurse(Assembly ass, HashSet <AssemblyDescriptor> soFar) { AssemblyDescriptor descr = new AssemblyDescriptor(ass); if (!soFar.Contains(descr)) { soFar.Add(descr); IEnumerable <AssemblyName> assemblyNames = ass.GetReferencedAssemblies() .Where(AssemblyNameFilter); foreach (AssemblyName assName in assemblyNames) { Assembly next = Assembly.Load(assName); if (next == null) { Log.Default.Warning("Assembly not found: ({0})", assName.FullName); } else { Recurse(next, soFar); } } ; } }