コード例 #1
0
        public static void WithMessagingExtensions(this IServiceCollection services, Action <MessagingSubscriberOptionsBuilder> subscriberOptionsBuilder = null)
        {
            services.Decorate <IEventStore, MessagingEventStoreDecorator>();
            services.AddTransient(sp =>
            {
                var builder = new MessagingSubscriberOptionsBuilder(sp.GetService <MessagingSubscriberOptions>());
                subscriberOptionsBuilder?.Invoke(builder);

                return((IEventStoreSubscriber)ActivatorUtilities.CreateInstance(sp, typeof(MessagingEventStoreSubscriber), builder.Options));
            });
            services.AddSingleton <MessagingContextAccessor>();
            services.AddSingleton <MessagingTopicResolver>();
        }
コード例 #2
0
        private void RegisterHostedService(Type serviceType,
                                           Action <MessagingSubscriberOptionsBuilder> subscriberOptionsConfigurator = null, string topicName = null)
        {
            _serviceCollection.AddSingleton(sp =>
            {
                var builder = new MessagingSubscriberOptionsBuilder(sp.GetService <MessagingSubscriberOptions>());
                subscriberOptionsConfigurator?.Invoke(builder);

                return(topicName == null
                    ? (IHostedService)ActivatorUtilities.CreateInstance(sp, serviceType, builder.Options)
                    : (IHostedService)ActivatorUtilities.CreateInstance(sp, serviceType, builder.Options, topicName));
            });
        }