示例#1
0
        /// <summary>
        /// Registration of CqrsVibe event handlers
        /// </summary>
        /// <param name="services">Service collection</param>
        /// <param name="lifetime">Lifetime</param>
        /// <param name="fromAssemblies">Assemblies containing handlers</param>
        /// <param name="warmUpHandlerInvokersCache">Warm up invokers cache of found handlers</param>
        public static IServiceCollection AddCqrsVibeEventHandlers(
            this IServiceCollection services,
            ServiceLifetime lifetime,
            IEnumerable <Assembly> fromAssemblies,
            bool warmUpHandlerInvokersCache = true)
        {
            foreach (var handlerTypeDescriptor in AssemblyScanner.FindEventHandlersFrom(
                         fromAssemblies,
                         warmUpHandlerInvokersCache))
            {
                services.Add(new ServiceDescriptor(
                                 handlerTypeDescriptor.HandlerType,
                                 handlerTypeDescriptor.ImplementationType,
                                 lifetime));
            }

            return(services);
        }