using Pole.Pole.ReliableMessage.EventBus; using Pole.ReliableMessage; using Pole.ReliableMessage.Abstraction; using Pole.ReliableMessage.EventBus; using Pole.ReliableMessage.Messaging; using Pole.ReliableMessage.Messaging.CallBack; using Pole.ReliableMessage.Processor; using Pole.ReliableMessage.Utils; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Text; namespace Microsoft.Extensions.DependencyInjection { public static class PoleReliableMessageServiceCollectionExtensions { public static IServiceCollection AddPoleReliableMessage(this IServiceCollection services, Action optionConfig) { ReliableMessageOption reliableMessageOption = new ReliableMessageOption(); optionConfig(reliableMessageOption); foreach(var extension in reliableMessageOption.ReliableMessageOptionExtensions) { extension.AddServices(services); } services.Configure(optionConfig); services.AddSingleton(); //services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddHostedService(); services.AddHttpClient(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); var provider = services.BuildServiceProvider(); IComteckReliableMessageBootstrap applicationBuilderConfigurator = provider.GetService(typeof(IComteckReliableMessageBootstrap)) as IComteckReliableMessageBootstrap; applicationBuilderConfigurator.Initialize(services, reliableMessageOption.EventHandlerAssemblies, reliableMessageOption.EventCallbackAssemblies); return services; } } }