예제 #1
0
 private static void AddAllDependencies(AssemblyLoader assemblyLoader, AssemblyDependencies assemblyDependencies, IGraph<string> graph, string assemblyName)
 {
     if (graph.Edges.Select(v => v.Parent).Contains(assemblyName))
         return;
     assemblyLoader.RefeflectionOnly(assemblyName);
     if (assemblyLoader.AssemblyLoaded)
     {
         assemblyDependencies.Analyse(assemblyLoader.Assembly);
         graph.AddEdges(assemblyLoader.Name, assemblyDependencies.DirectDependencies);
         foreach (var dependency in assemblyDependencies.DirectDependencies)
         {
             AddAllDependencies(assemblyLoader, assemblyDependencies, graph, dependency);
         }
     }
     else
     {
         graph.AddEdges(assemblyName, new List<string>());
         //Console.WriteLine("    Assembly failed to load: {0}", assemblyName);
     }
 }