From b298c943b1d76d4a145f9944e52dcaed459f7579 Mon Sep 17 00:00:00 2001 From: yangxiaodong Date: Mon, 14 Aug 2017 18:30:21 +0800 Subject: [PATCH] refactor of DI. --- .../CAP.MySqlCapOptionsExtension.cs | 27 +++++++------------ .../CAP.PostgreSqlCapOptionsExtension.cs | 27 +++++++------------ .../CAP.RabbitMQCapOptionsExtension.cs | 4 +++ 3 files changed, 24 insertions(+), 34 deletions(-) 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(); } }