public static void Run() { CodeTimer.Initialize(); var type = typeof(MessageTest <CmdTest>); var ctor = type.GetConstructors()[2]; ObjectActivator <object> createdActivator = ActivatorHelper.GetActivator <object>(ctor); var input = new CmdTest(); var header = new MessageHeaderTest(); object tmpObj = null; var count = 1000000; CodeTimer.Time("new instance", count, () => { tmpObj = new MessageTest <CmdTest>(input, header); }); CodeTimer.Time("exp tree", count, () => { tmpObj = createdActivator(input, header); }); CodeTimer.Time("Activator.CreateInstance", count, () => { tmpObj = Activator.CreateInstance(type, input, header); }); CodeTimer.Time("exp tree2", count, () => { tmpObj = ActivatorHelper.CreateInstance(type, input, header); }); }
public MessageTest(T data, MessageHeaderTest header) { Body = data; Header = header; TypeName = this.GetType().FullName; }