Reflection: dynamic assembly loading in C#

//load by name
var asm = Assembly.Load(@"SampleLib");
//or load by several parameters
var asm = Assembly.Load(@"SampleLib, Version=1.0.0.0, PublicKeyToken=null, Culture=""");
//get specific type
var macType = asm.GetType("SampleLib.MacBook");
//get all types
foreach (var t in asm.GetTypes())
{
    Console.WriteLine(t.Name);
}