Vlad,
I don't know whether this will help you
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
{
}
}
Gregory