The ways to create object instance In a nutshell, 3 ways: newproxy class (it could be used to implement AOP, .Net Remoting, WebService... facilities)ILGenerator.Emit (it could be used to implement AOP, code injection ... facilities)