Example #1
0
        public IMessageHandlerConfigurator <TM> AddMessageHandlers <TM>(IEnumerable <Assembly> sourceAssemblies)
            where TM : IMessage
        {
            if (sourceAssemblies is null)
            {
                throw new ArgumentNullException(nameof(sourceAssemblies));
            }

            var hasHandlers = false;

            foreach (var assembly in sourceAssemblies)
            {
                var types = assembly.GetTypes();
                foreach (var type in types)
                {
                    if (type.IsSaga() || !type.CanHandleMessage <TM>())
                    {
                        continue;
                    }

                    Services.AddTransient(typeof(IHandleMessage <TM>), type);

                    hasHandlers = true;
                }
            }

            if (hasHandlers)
            {
                _typeResolver.Register(typeof(TM));
            }

            return(new MessageHandlerConfigurator <TM>(this.Services));
        }
Example #2
0
 //[DebuggerStepThrough]
 public static void Register <I, T>()
     where I : class
     where T : class, I
 {
     resolver.Register <I, T>();
 }
Example #3
0
 //[DebuggerStepThrough]
 public void Register <I, T>()
     where I : class
     where T : class, I
 {
     resolver.Register <I, T>(ObjectLifeSpans.Thread);
 }