Commit b298c943 authored by yangxiaodong's avatar yangxiaodong

refactor of DI.

parent af8c37cf
...@@ -28,24 +28,17 @@ namespace DotNetCore.CAP ...@@ -28,24 +28,17 @@ namespace DotNetCore.CAP
if (mysqlOptions.DbContextType != null) if (mysqlOptions.DbContextType != null)
{ {
var provider = TempBuildService(services); services.AddSingleton(x =>
var dbContextObj = provider.GetService(mysqlOptions.DbContextType); {
var dbContext = (DbContext)dbContextObj; var dbContext = (DbContext)x.GetService(mysqlOptions.DbContextType);
mysqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString; mysqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString;
return mysqlOptions;
});
} }
services.AddSingleton(mysqlOptions); else
}
#if NETSTANDARD1_6
private IServiceProvider TempBuildService(IServiceCollection services)
{ {
return services.BuildServiceProvider(); services.AddSingleton(mysqlOptions);
} }
#else
private ServiceProvider TempBuildService(IServiceCollection services)
{
return services.BuildServiceProvider();
} }
#endif
} }
} }
\ No newline at end of file
...@@ -28,24 +28,17 @@ namespace DotNetCore.CAP ...@@ -28,24 +28,17 @@ namespace DotNetCore.CAP
if (postgreSqlOptions.DbContextType != null) if (postgreSqlOptions.DbContextType != null)
{ {
var provider = TempBuildService(services); services.AddSingleton(x =>
var dbContextObj = provider.GetService(postgreSqlOptions.DbContextType); {
var dbContext = (DbContext)dbContextObj; var dbContext = (DbContext)x.GetService(postgreSqlOptions.DbContextType);
postgreSqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString; postgreSqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString;
return postgreSqlOptions;
});
} }
services.AddSingleton(postgreSqlOptions); else
}
#if NETSTANDARD1_6
private IServiceProvider TempBuildService(IServiceCollection services)
{ {
return services.BuildServiceProvider(); services.AddSingleton(postgreSqlOptions);
} }
#else
private ServiceProvider TempBuildService(IServiceCollection services)
{
return services.BuildServiceProvider();
} }
#endif
} }
} }
\ No newline at end of file
...@@ -21,6 +21,10 @@ namespace DotNetCore.CAP ...@@ -21,6 +21,10 @@ namespace DotNetCore.CAP
services.AddSingleton(options); services.AddSingleton(options);
services.AddSingleton<IConsumerClientFactory, RabbitMQConsumerClientFactory>(); services.AddSingleton<IConsumerClientFactory, RabbitMQConsumerClientFactory>();
services.AddSingleton<ConnectionPool>();
services.AddScoped(x => x.GetService<ConnectionPool>().Rent());
services.AddTransient<IQueueExecutor, PublishQueueExecutor>(); services.AddTransient<IQueueExecutor, PublishQueueExecutor>();
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment