private void TestTypes(IGenericHandlerInvoker invoker) { foreach (var type in _typesToLookup) { invoker.InvokeHandler <Task>(_serviceProvider, type.GetType(), new[] { type }); } }
public void TestInvoker(IGenericHandlerInvoker invoker) { var serviceMock = new Mock <ITestHandler <bool> >(); serviceMock.Setup(x => x.HandleAsync(true)).Returns(Task.CompletedTask); var services = new ServiceCollection(); services.AddSingleton(serviceMock.Object); var serviceProvider = services.BuildServiceProvider(false); for (var i = 0; i < 1000; i++) { invoker.InvokeHandler <Task>(serviceProvider, typeof(bool), new object[] { true }); } serviceMock.Verify(); }
public GenericHandlerInvokerBenchmark() { var services = new ServiceCollection(); services.AddScoped <ITestHandler <string>, TestHandler1>(); services.AddScoped <ITestHandler <int>, TestHandler2>(); services.AddScoped <ITestHandler <double>, TestHandler3>(); services.AddScoped <ITestHandler <float>, TestHandler4>(); services.AddScoped <ITestHandler <long>, TestHandler5>(); _serviceProvider = services.BuildServiceProvider(false); _cachedReflect = new CachedReflectionInvoker(typeof(ITestHandler <>), nameof(ITestHandler <object> .HandleAsync)); _compileExpression = new CompiledExpressionInvoker(typeof(ITestHandler <>), nameof(ITestHandler <object> .HandleAsync)); _naiveReflect = new ReflectionInvoker(typeof(ITestHandler <>), nameof(ITestHandler <object> .HandleAsync)); _cachedCompileExpression = new CachedCompiledExpressionInvoker(typeof(ITestHandler <>), nameof(ITestHandler <object> .HandleAsync)); _prodCachedCompileExpression = new ProductionReadyCachedCompiledExpressionInvoker(typeof(ITestHandler <>), nameof(ITestHandler <object> .HandleAsync)); _switchBaseline = new SwitchBaselineInvoker(); }