Exemplo n.º 1
0
        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);
        }