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 { } }