>using System.Collections.Generic; >using System.Reflection; >using System.Diagnostics; > > >namespace BaseTest >{ > class test3 > { > > //______________________________________________________________________ > static void Main() > { > > > var xx = new MyClass(); > var list = GetAllAssemblies(xx); > > foreach ( var a in list ) > { > Console.WriteLine("{0}", a); > } > Console.ReadLine(); > } > //______________________________________________________________________ > public static HashSet<String> GetAllAssemblies(object o) > { > var set = new HashSet<String>(); > > var asm = Assembly.GetAssembly(o.GetType()); > > Queue<String> toProcess = new Queue<String>(); > toProcess.Enqueue(asm.FullName); > > while (toProcess.Count != 0) > { > var asmName = toProcess.Dequeue(); > > if (set.Contains(asmName)) > { > > continue; > } > > set.Add(asmName); > > > var asmLoaded = Assembly.Load(asmName); > > var referencedAssemblies = asmLoaded.GetReferencedAssemblies(); > > foreach (var xx in referencedAssemblies) > toProcess.Enqueue(xx.FullName); > > } > > > return set; > } > //______________________________________________________________________ > > } > //______________________________________________________________________ > class MyClass > { > } >} >Nice Queue :-}