diff --git a/src/DotNetCore.CAP.MySql/CAP.MySqlCapOptionsExtension.cs b/src/DotNetCore.CAP.MySql/CAP.MySqlCapOptionsExtension.cs index aa825a2..ce6fd34 100644 --- a/src/DotNetCore.CAP.MySql/CAP.MySqlCapOptionsExtension.cs +++ b/src/DotNetCore.CAP.MySql/CAP.MySqlCapOptionsExtension.cs @@ -28,24 +28,17 @@ namespace DotNetCore.CAP if (mysqlOptions.DbContextType != null) { - var provider = TempBuildService(services); - var dbContextObj = provider.GetService(mysqlOptions.DbContextType); - var dbContext = (DbContext)dbContextObj; - mysqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString; + services.AddSingleton(x => + { + var dbContext = (DbContext)x.GetService(mysqlOptions.DbContextType); + mysqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString; + return mysqlOptions; + }); + } + else + { + services.AddSingleton(mysqlOptions); } - services.AddSingleton(mysqlOptions); - } - -#if NETSTANDARD1_6 - private IServiceProvider TempBuildService(IServiceCollection services) - { - return services.BuildServiceProvider(); - } -#else - private ServiceProvider TempBuildService(IServiceCollection services) - { - return services.BuildServiceProvider(); } -#endif } } \ No newline at end of file diff --git a/src/DotNetCore.CAP.PostgreSql/CAP.PostgreSqlCapOptionsExtension.cs b/src/DotNetCore.CAP.PostgreSql/CAP.PostgreSqlCapOptionsExtension.cs index d3d8b14..9038dff 100644 --- a/src/DotNetCore.CAP.PostgreSql/CAP.PostgreSqlCapOptionsExtension.cs +++ b/src/DotNetCore.CAP.PostgreSql/CAP.PostgreSqlCapOptionsExtension.cs @@ -28,24 +28,17 @@ namespace DotNetCore.CAP if (postgreSqlOptions.DbContextType != null) { - var provider = TempBuildService(services); - var dbContextObj = provider.GetService(postgreSqlOptions.DbContextType); - var dbContext = (DbContext)dbContextObj; - postgreSqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString; + services.AddSingleton(x => + { + var dbContext = (DbContext)x.GetService(postgreSqlOptions.DbContextType); + postgreSqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString; + return postgreSqlOptions; + }); + } + else + { + services.AddSingleton(postgreSqlOptions); } - services.AddSingleton(postgreSqlOptions); - } - -#if NETSTANDARD1_6 - private IServiceProvider TempBuildService(IServiceCollection services) - { - return services.BuildServiceProvider(); - } -#else - private ServiceProvider TempBuildService(IServiceCollection services) - { - return services.BuildServiceProvider(); } -#endif } } \ No newline at end of file diff --git a/src/DotNetCore.CAP.RabbitMQ/CAP.RabbitMQCapOptionsExtension.cs b/src/DotNetCore.CAP.RabbitMQ/CAP.RabbitMQCapOptionsExtension.cs index 4202570..22e2af2 100644 --- a/src/DotNetCore.CAP.RabbitMQ/CAP.RabbitMQCapOptionsExtension.cs +++ b/src/DotNetCore.CAP.RabbitMQ/CAP.RabbitMQCapOptionsExtension.cs @@ -21,6 +21,10 @@ namespace DotNetCore.CAP services.AddSingleton(options); services.AddSingleton(); + + services.AddSingleton(); + services.AddScoped(x => x.GetService().Rent()); + services.AddTransient(); } }