/// <summary> /// Should be used for testing/development/debugging. NOT recommended for production. /// /// </summary> /// <param name="containerCfg">Container builder</param> /// <param name="handlerTypes"></param> public static IBuildBus ConfigureAsMemoryBus(IRegisterBusTypesInContainer containerCfg, params Type[] handlerTypes) { return(ConfigureForMonolith(cfg => { cfg .RegisterTypesInContainer(containerCfg) .WithInMemoryAudits() .AutoConfigureFrom(handlerTypes) .ConfigureProcessors(procs => procs.Add(MemoryProcessor, endpoint => endpoint.HandlesEverything())); })); }
void RegisterTypesInContainer(IRegisterBusTypesInContainer cb) { cb.RegisterSingletonInstance(new BusAuditor(_host.GetStorage <IStoreAudits>())); cb.RegisterSingletonInstance(_host.GetStorage <IStoreSagaState>()); _host.Handlers.MustNotBeNull("Handlers are null"); _host.SagaStateTypes.MustNotBeNull("Saga state types are null"); Func <Type, bool> isSingleton = t => t.HasCustomAttribute <SingletonHandlerAttribute>(); cb.Register(_host.Handlers.Where(t => !isSingleton(t)).ToArray()); cb.Register(_host.Handlers.Where(t => isSingleton(t)).ToArray(), true); cb.Register(_host.SagaStateTypes); cb.RegisterSingletonInstance(_bus); cb.RegisterInstanceFactory(_bus.GetDispatcher); }
public IConfigureHost RegisterTypesInContainer(IRegisterBusTypesInContainer containerBuilder) { containerBuilder.MustNotBeNull(); _containerBuilder = containerBuilder; return(this); }
/// <summary> /// Should be used for testing/development/debugging. NOT recommended for production. /// </summary> /// <param name="containerCfg"></param> /// <param name="asms">Assemblies containing message handlers</param> public static IBuildBus ConfigureAsMemoryBus(IRegisterBusTypesInContainer containerCfg, params Assembly[] asms) { return(ConfigureAsMemoryBus(containerCfg, asms.SelectMany(a => a.GetExportedTypes().Where(BusBuilderExtensions.IsMessageHandler)).ToArray())); }