private static ContainerBuilder RegisterMediatR(this ContainerBuilder containerBuilder) { containerBuilder.RegisterType <Mediator>() .As <IMediator>() .InstancePerLifetimeScope(); containerBuilder.Register <ServiceFactory>(context => { var c = context.Resolve <IComponentContext>(); return(t => EventHandlerHelper.IsEventHandler(t) ? c.ResolveEventHandlers(t) : c.Resolve(t)); }); // ensure order: behaviors, exception handlers, exception actions containerBuilder .RegisterGeneric(typeof(RequestExceptionActionProcessorBehavior <,>)) .As(typeof(IPipelineBehavior <,>)) .InstancePerDependency(); containerBuilder .RegisterGeneric(typeof(RequestExceptionProcessorBehavior <,>)) .As(typeof(IPipelineBehavior <,>)) .InstancePerDependency(); return(containerBuilder); }