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); }); }
static void Main(string[] args) { IocContainer.Instance.ConfigureServices(services => { services.AddSimpleLocalLogger(configureOptions: options => { //options.LogToLocalFile = true; }); }); SimpleLocalLoggerBase.DateTimeFormat = time => time.ToLongDateTime(); SimpleLocalLoggerBase.CustomOutputLog += (sender, eventArgs) => { //Console.WriteLine($"自定义输出日志:{eventArgs.Options.LogToConsole}|{eventArgs.Options.LogToLocalFile}"); }; _logger = IocContainer.Instance.GetService <ISimpleLogger <Program> >(); //_logger.LogError("测试"); //ISimpleDo toDo = new SimpleQueueTest(); ISimpleDo toDo = new CmdTest(); toDo.Execute(); Console.WriteLine("Done."); Console.ReadLine(); }