コード例 #1
0
 public static IServiceCollection AddRabbitConnectionProvider(this IServiceCollection services)
 {
     services
     .AddScoped <IConnectionProvider <RabbitMQConnection> >((serviceProvider) =>
     {
         var connectionStringProvider   = serviceProvider.GetService <IConnectionStringProvider>();
         var defaultConneciton          = serviceProvider.GetService <ConnectionOptions>();
         var connectionInfoConfigurator = serviceProvider.GetService <Action <ConnectionOptions> >();
         connectionInfoConfigurator?.Invoke(defaultConneciton);
         var result = new RabbitMQConnectionProvider(connectionStringProvider, defaultConneciton, serviceProvider.GetService <ILogger <RabbitMQConnection> >());
         return(result);
     });
     return(services);
 }
コード例 #2
0
 public static IServiceCollection AddRabbitConnectionProvider(this IServiceCollection services, ServiceLifetime lifetime)
 {
     services
     .Add(
         new ServiceDescriptor(
             typeof(IConnectionProvider <RabbitMQConnection>),
             (serviceProvider) => {
         var connectionStringProvider   = serviceProvider.GetService <IConnectionStringProvider>();
         var defaultConneciton          = serviceProvider.GetService <ConnectionOptions>();
         var connectionInfoConfigurator = serviceProvider.GetService <Action <ConnectionOptions> >();
         connectionInfoConfigurator?.Invoke(defaultConneciton);
         var result = new RabbitMQConnectionProvider(connectionStringProvider, defaultConneciton, serviceProvider.GetService <ILogger <RabbitMQConnection> >());
         return(result);
     }, lifetime)
         );
     return(services);
 }