public void Load(IEnumerable<Assembly> assemblies) { Stopwatch sw = new Stopwatch(); sw.Start(); List<TypeKey> types = assemblies.KeysForPendingTypes(); List<MethodKey> methods = assemblies.KeysForPendingMethods(); foreach (Assembly assembly in assemblies.AssembliesWithPendingTypes()) { assembly.IsDependency = true; } foreach (AssemblyDefinition definition in _externalAssemblyLoader.FindExternalAssemblyDefinitions(assemblies)) { TopDownVisitor visitor = new TopDownVisitor(_modelCreator, new VisitationOptions(false, types, methods)); visitor.Visit(definition); _log.Info(sw.Elapsed.TotalSeconds + " - " + definition.Name.Name); } _log.Info(sw.Elapsed.TotalSeconds); }
public IEnumerable<AssemblyDefinition> FindExternalAssemblyDefinitions(IEnumerable<Assembly> assemblies) { List<AssemblyDefinition> definitions = new List<AssemblyDefinition>(); foreach (Assembly assembly in assemblies.AssembliesWithPendingTypes()) { AssemblyDefinition definition = GetAssemblyDefinition(assembly); if (definition == null) { _log.Warn("Not able to load: " + assembly.Key); } else { definitions.Add(definition); } } return definitions; }