/// Scan the given assembly or the calling assembly for MessageHandlers
 /// and register them in the .NET Core IoC.
 /// Fishbus framework classes are also registered
 /// <param name="assembly">Assembly that contains the MessageHandlers</param>
 public static IServiceCollection ConfigureMessaging(this IServiceCollection services, Assembly assembly = null)
 {
     assembly = assembly ?? Assembly.GetCallingAssembly();
     MessageHandlerTypes
     .GetAll(assembly)
     .ToList()
     .ForEach(t => services.AddTransient(t));
     services
     .AddSingleton <MessagingConfiguration>()
     .AddSingleton <MessageHandlerRegistry>(p => new MessageHandlerRegistry(() => MessageHandlerTypes.GetAll(assembly)))
     .AddHostedService <MessagingService>();
     return(services);
 }
Exemple #2
0
        private static IServiceCollection ConfigureMessaging(this IServiceCollection services, LogCorrelationHandler logCorrelationHandler, Assembly[] assemblies)
        {
            if (logCorrelationHandler == null)
            {
                throw new ArgumentNullException(nameof(logCorrelationHandler));
            }
            MessageHandlerTypes
            .GetAll(assemblies)
            .ToList()
            .ForEach(t => services.AddTransient(t));
            services
            .AddSingleton <MessagingConfiguration>()
            .AddSingleton(p => new MessageHandlerRegistry(() => MessageHandlerTypes.GetAll(assemblies)))
            .AddSingleton(logCorrelationHandler)
            .AddHostedService <MessagingService>();

            return(services);
        }