I will quick-guide you how to do it without compilation.
First, you need to load the assembly metadata into memory, so you issue
Assembly myAssembly = Assembly.Load()
Look up different overrides and needed namespace usings on MSDN
Then, you get all types in the assembly with (and filter them with Linq)
Type[] allTypes = myAssembly.GetTypes();
Or get the type of a specific class
Type myClassType = myAssembly.GetType("Full.Class.Name");
Create a list of parameters to pass to the constructor:
object myClassConstructorParams = new object[] {"param1", 2};
And finally initialize it:
object myClassInstance = Activator.CreateInstance(myClassType, myClassConstructorParams);
Then you can use it just as a regular class instance:
MyClass instance = myClassInstance as MyClass;
Hope this helps.
[Edited by - dilyan_rusev on December 11, 2008 6:10:43 PM]