Assume I have a class that is unknown until runtime. At runtime I get a reference, x, of type Type referencing to Foo.GetType(). Only by using x and List<>, can I create
Given a type, you can instantiate a new instance this way:
var obj = Activator.CreateInstance(type);
Ref: http://msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx