Пример #1
0
 /// <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()));
     }));
 }
Пример #2
0
        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);
        }
Пример #3
0
 public IConfigureHost RegisterTypesInContainer(IRegisterBusTypesInContainer containerBuilder)
 {
     containerBuilder.MustNotBeNull();
     _containerBuilder = containerBuilder;
     return(this);
 }
Пример #4
0
 /// <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()));
 }