public static void SubscribeToEvent <TEvent>(this IBusClient bus, IHost host) where TEvent : IEvent
        {
            var handler = (IEventHandler <TEvent>)host.Services
                          .GetService(typeof(IEventHandler <TEvent>));

            bus.WithEventHandlerAsync(handler);
        }
        public void SubscribeToEvent <TEvent>() where TEvent : IEvent
        {
            var handler = (IEventHandler <TEvent>)_webHost.Services
                          .GetService(typeof(IEventHandler <TEvent>));

            _bus.WithEventHandlerAsync(handler);
        }
示例#3
0
            public BusBuilder Subscribe2Event <TEvent>() where TEvent : IEvent
            {
                var handler = (IEventHanler <TEvent>)_webHost.Services.GetService(typeof(IEventHanler <TEvent>));

                _bus.WithEventHandlerAsync(handler);
                return(this);
            }
            public BusBuilder SubscribeToEvent <TEvent>() where TEvent : IEvent
            {
                var eventHandler = _resolver.Resolve <IEventHandler <TEvent> >();

                _bus.WithEventHandlerAsync(eventHandler, _queueName);

                return(this);
            }
示例#5
0
            public BusBuilder SubscribeToEvent <Event>() where Event : Message
            {
                var handler = (IHandlerMS <Event>)_webHost.Services.GetService(typeof(IHandlerMS <Event>));

                _bus.WithEventHandlerAsync(handler);

                return(this);
            }
示例#6
0
            /// <summary>
            /// Method to subscribe to an event
            /// </summary>
            /// <typeparam name="TEvent">The event to subscribe to</typeparam>
            /// <returns>To make piping possible</returns>
            public BusBuilder SubscribeToEvent <TEvent>() where TEvent : IEvent
            {
                var handler = (IEventHandler <TEvent>)host.Services.GetService(typeof(IEventHandler <TEvent>));

                busClient.WithEventHandlerAsync <TEvent>(handler);

                return(this);
            }
            public async Task <BusBuilder> SubscribeToEvent <TEvent>() where TEvent : IEvent
            {
                var handler = (IEventHandler <TEvent>)_webHost.Services
                              .GetService(typeof(IEventHandler <TEvent>));
                await _bus.WithEventHandlerAsync(handler);

                return(this);
            }
            public BusBuilder SubscribeToEvent <TEvent>(string exchangeName = null, string routingKey = null) where TEvent : IEvent
            {
                var eventHandler = _resolver.Resolve <IEventHandler <TEvent> >();

                _bus.WithEventHandlerAsync(eventHandler, exchangeName, routingKey);

                return(this);
            }
示例#9
0
            public BusBuilder SubscribeToEvent <TEvent>()
                where TEvent : IEvent
            {
                var handler = _webHost.Services.GetService <IEventHandler <TEvent> >();

                _bus.WithEventHandlerAsync(handler);

                return(this);
            }
示例#10
0
                //public BusBuilder SubscribeToEvent<TEvent>() where TEvent : IEvent
                //{

                //    var handler = (IEventHandler<TEvent>)_webHost.Services
                //            .GetService(typeof(IEventHandler<TEvent>));

                //    _bus.WithEventHandlerAsync(handler);

                //    return this;
                //}

                //answer
                public BusBuilder SubscribeToEvent <TEvent>() where TEvent : IEvent
                {
                    using (var serviceScope = _webHost.Services.GetRequiredService <IServiceScopeFactory>().CreateScope())
                    {
                        var handler = (IEventHandler <TEvent>)serviceScope.ServiceProvider.GetService(typeof(IEventHandler <TEvent>));
                        _bus.WithEventHandlerAsync(handler);
                        return(this);
                    }
                }
示例#11
0
        public BusBuilder SubscribeToEvent <TEvent>()
        {
            var handler = (IEventHandler <TEvent>)webHost.Services
                          .GetService(typeof(IEventHandler <TEvent>));

            bus.WithEventHandlerAsync(handler);

            return(this);
        }
示例#12
0
            ///https://stackoverflow.com/questions/55089755/cannot-resolve-scoped-service/55091641
            public BusBuilder SubscribeToEvent <TEvent>() where TEvent : IEvent
            {
                var handler = (IEventHandler <TEvent>)_webHost.Services.CreateScope()
                              .ServiceProvider.GetRequiredService(typeof(IEventHandler <TEvent>));

                _bus.WithEventHandlerAsync(handler);

                return(this);
            }
示例#13
0
            public BusBuilder SubscribeToEvent <TEvent>() where TEvent : IEvent
            {
                Console.WriteLine("STE");

                var handler = (IEventHandler <TEvent>)_webHost.Services.GetService(typeof(IEventHandler <TEvent>));

                _busClient.WithEventHandlerAsync(handler);

                return(this);
            }
示例#14
0
            public BusBuilder SubscribeToEvent <TEvent> () where TEvent : IEvent
            {
                var serviceProvider = (IServiceProvider)_webhost.Services.GetService(typeof(IServiceProvider));
                var handler         = serviceProvider.CreateScope().ServiceProvider.GetRequiredService <IEventHandler <TEvent> > ();

                // var handler = (IEventHandler<TEvent>) _webhost.Services
                //     .GetService (typeof (IEventHandler<TEvent>));
                //this extension method should be created
                _bus.WithEventHandlerAsync(handler);
                return(this);
            }
            public BusBuilder SubscribeToEvent <TEvent>() where TEvent : IEvent
            {
                var handler = (IEventHandler <TEvent>)_webHost.Services
                              .GetService(typeof(IEventHandler <TEvent>));

                // if(!(_webHost.Services.GetService(typeof(IEventHandler<TEvent>)) is IEventHandler<TEvent> handler))
                //     throw new NullReferenceException();

                _bus.WithEventHandlerAsync(handler);

                return(this);
            }
示例#16
0
            public BusBuilder SubscribeToEvent <TEvent>() where TEvent : IEvent
            {
                var eventHandlerScopedService = _webHost.Services.GetService <IServiceScopeFactory>();

                using (var scope = eventHandlerScopedService.CreateScope())
                {
                    var handler = scope.ServiceProvider.GetService <IEventHandler <TEvent> >();
                    _bus.WithEventHandlerAsync(handler);
                }
                //var handler = (IEventHandler<TEvent>)_webHost.Services.GetService(typeof(IEventHandler<TEvent>));
                //_bus.WithEventHandlerAsync(handler);

                return(this);
            }
        public BusBuilder SubScribeToEvent <TEvent>() where TEvent : IEvent
        {
            try
            {
                var handler = (IEventHandler <TEvent>)_webHost.Services.GetService(typeof(IEventHandler <TEvent>));

                _bus.WithEventHandlerAsync(handler);
            }
            catch (Exception ex)
            {
                throw;
            }
            return(this);
        }
示例#18
0
            /// <summary>
            /// Subscribe events.
            /// </summary>
            /// <typeparam name="TEvent"></typeparam>
            /// <returns></returns>
            public BusBuilder SubscribeToEvent <TEvent>() where TEvent : IEvent
            {
                // Using microsoft extension dependency to resolve the issue to get events services registered.
                using (var serviceScope = _webHost.Services.GetRequiredService <IServiceScopeFactory>().CreateScope())
                {
                    // Gets the event in service collection.
                    var handler = (IEventHandler <TEvent>)serviceScope.ServiceProvider
                                  .GetService(typeof(IEventHandler <TEvent>));

                    // Register the service in the bus.
                    _bus.WithEventHandlerAsync(handler);

                    return(this);
                }
            }
示例#19
0
        public BusBuilder SubscribeToEvent <TEvent>() where TEvent : IEvent
        {
            using (var serviceScope = webHost.Services.CreateScope())
            {
                var service = serviceScope.ServiceProvider;

                try
                {
                    var handler = service.GetRequiredService <IEventHandler <TEvent> >();
                    busClient.WithEventHandlerAsync(handler);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }

            return(this);
        }
            public BusBuilder SubscribeToEvent <TEvent>() where TEvent : IEvent
            {
                _bus.WithEventHandlerAsync <TEvent>(_resolver, _queueName);

                return(this);
            }