public static BusPluginOptions UseModel(this BusPluginOptions options) { options.Services .AddScoped <IEventPublisher, EventPublisher>() .AddScoped <ICommandPublisher, CommandPublisher>() .AddScoped <IRequestPublisher, RequestPublisher>() .AddScoped <IQueryPublisher, QueryPublisher>(); return(options); }
public static BusPluginOptions Observable(this BusPluginOptions options) { options.Services .AddScoped <IArgumentResolver, ObservableMessageArgumentResolver>() .AddScoped <IReturnValueHandler, ObservableMessagesReturnValueHandler>() .AddSingleton <MessageObservable, MessageObservable>() .AddSingleton <ISubscriber, MessageObservable>() .AddSingleton(typeof(IMessageObservable <>), typeof(MessageObservable <>)); return(options); }
public static IServiceCollection AddBus(this IServiceCollection services, Action <BusPluginOptions> optionsAction = null) { var pluginOptions = new BusPluginOptions(services); optionsAction?.Invoke(pluginOptions); return(services .AddSingleton <BusOptions>() .AddSingleton <BusConfigurator>() .AddScoped <SubscribedMethodInvoker>() .AddScoped <SubscribedMethodArgumentsResolver>() .AddScoped <IArgumentResolver, EnumerableMessageArgumentResolver>() .AddScoped <IArgumentResolver, SingleMessageArgumentResolver>() .AddScoped <IArgumentResolver, ServiceProviderAdditionalArgumentResolver>() .AddScoped <ReturnValueHandler>() .AddScoped <IReturnValueHandler, EnumerableMessagesReturnValueHandler>() .AddScoped <IReturnValueHandler, SingleMessageReturnValueHandler>() .AddScoped <IPublisher, Publisher>()); }