Assuming that you want to list all the form classes in the assembly, it's not too difficult.
string assemblyPath = @"D:\Temp\Test.DLL";
Assembly assembly = Assembly.LoadFrom(assemblyPath);
foreach (Type type in assembly.GetTypes())
{
if (type.BaseType == typeof(Form))
{
Console.WriteLine(type.FullName);
}
}
You can also use reflection to create an instance of each that's also pretty simple:
string assemblyPath = @"D:\Temp\Test.DLL";
List<Form> forms = new List<Form>();
Assembly assembly = Assembly.LoadFrom(assemblyPath);
foreach (Type type in assembly.GetTypes())
{
if (type.BaseType == typeof(Form))
{
forms.Add((Form) Activator.CreateInstance(type));
}
}
But it's a lot easier to work with if you know the names of the forms in the assembly!