private static ISourcedEventHandler CreateHandlerForMethod(IEventSource eventSource, MethodInfo method, EventHandlerAttribute attribute) { Type firstParameterType = method.GetParameters().First().ParameterType; Action<IEvent> handler = e => method.Invoke(eventSource, new object[] { e }); return new TypeThresholdedActionBasedDomainEventHandler(handler, firstParameterType, attribute.Exact); }