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)); }
//[DebuggerStepThrough] public static void Register <I, T>() where I : class where T : class, I { resolver.Register <I, T>(); }
//[DebuggerStepThrough] public void Register <I, T>() where I : class where T : class, I { resolver.Register <I, T>(ObjectLifeSpans.Thread); }