From 6a7e1365d22b7fd320a2149d061c82f1aafe1de0 Mon Sep 17 00:00:00 2001 From: "239573049@qq.com" <239573049@qq.com> Date: Thu, 7 Jul 2022 01:05:06 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Extensions/TokenApplicationExtensions.cs | 21 +++++++++++++++++++ src/Token.Module/Token.Module.csproj | 16 +++++++++++--- test/NetCore.HttpApi/NetCoreHttpApiModule.cs | 3 ++- 3 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 src/Token.Module/Extensions/TokenApplicationExtensions.cs diff --git a/src/Token.Module/Extensions/TokenApplicationExtensions.cs b/src/Token.Module/Extensions/TokenApplicationExtensions.cs new file mode 100644 index 0000000..a5859af --- /dev/null +++ b/src/Token.Module/Extensions/TokenApplicationExtensions.cs @@ -0,0 +1,21 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; + +namespace Token.Module.Extensions; + + +public static class TokenApplicationExtensions +{ + public static IWebHostEnvironment? GetEnvironment( + this IApplicationBuilder app) + { + return app.ApplicationServices.GetService(); + } + + public static IConfiguration? GetConfiguration(this IApplicationBuilder app) => app.ApplicationServices.GetService(); + + public static ILoggerFactory? GetLoggerFactory(IApplicationBuilder app) => app.ApplicationServices.GetService(); +} \ No newline at end of file diff --git a/src/Token.Module/Token.Module.csproj b/src/Token.Module/Token.Module.csproj index 815a3f2..0c1beff 100644 --- a/src/Token.Module/Token.Module.csproj +++ b/src/Token.Module/Token.Module.csproj @@ -1,7 +1,7 @@ - netstandard2.1 + net6.0 enable 10 模块注入,模块引用 @@ -17,8 +17,12 @@ - - + + + + + + @@ -28,4 +32,10 @@ + + + C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\6.0.6\Microsoft.AspNetCore.Hosting.Abstractions.dll + + + diff --git a/test/NetCore.HttpApi/NetCoreHttpApiModule.cs b/test/NetCore.HttpApi/NetCoreHttpApiModule.cs index b86ac89..8d4c2bb 100644 --- a/test/NetCore.HttpApi/NetCoreHttpApiModule.cs +++ b/test/NetCore.HttpApi/NetCoreHttpApiModule.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.Hosting; using Microsoft.OpenApi.Models; using NetCore.Domain; using Token.Module; +using Token.Module.Extensions; namespace NetCore.HttpApi; @@ -77,7 +78,7 @@ public class NetCoreHttpApiModule : TokenModule private void UseSwagger(IApplicationBuilder app) { - var env = app.ApplicationServices.GetService(); + var env = app.GetEnvironment(); if (env.IsDevelopment()) { -- Gitee From 03e06d5ce50c13f601872a39328e4d954074c58e Mon Sep 17 00:00:00 2001 From: "239573049@qq.com" <239573049@qq.com> Date: Thu, 7 Jul 2022 01:27:34 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E5=87=8F=E5=B0=91=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ .../ServiceCollectionApplicationExtensions.cs | 2 +- .../Extensions/TokenApplicationExtensions.cs | 21 ------------------- src/Token.Module/Token.Module.csproj | 16 +++++--------- test/NetCore.HttpApi/NetCoreHttpApiModule.cs | 3 +-- 5 files changed, 10 insertions(+), 35 deletions(-) delete mode 100644 src/Token.Module/Extensions/TokenApplicationExtensions.cs diff --git a/README.md b/README.md index 640d539..d997444 100644 --- a/README.md +++ b/README.md @@ -37,8 +37,11 @@ app.Run(); // 如果没有取消自动注入的话,您只需要在实现类继承相应的接口即可 // 接口的名字和实现类型的名字必须基本一致,接口多加I其他的名字必须一致 + IScopedDependency => services.AddScoped(); + ISingletonDependency => service.AddSingleton(); + ITransientDependency => service.AddTransient(); ### 示例 diff --git a/src/Token.Module/Extensions/ServiceCollectionApplicationExtensions.cs b/src/Token.Module/Extensions/ServiceCollectionApplicationExtensions.cs index 1d9050c..f5678ac 100644 --- a/src/Token.Module/Extensions/ServiceCollectionApplicationExtensions.cs +++ b/src/Token.Module/Extensions/ServiceCollectionApplicationExtensions.cs @@ -1,9 +1,9 @@ using System.Linq; using System.Reflection; using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Builder; using System.Threading.Tasks; using System.Collections.Generic; +using Microsoft.AspNetCore.Builder; using Token.Module.Attributes; namespace Token.Module.Extensions; diff --git a/src/Token.Module/Extensions/TokenApplicationExtensions.cs b/src/Token.Module/Extensions/TokenApplicationExtensions.cs deleted file mode 100644 index a5859af..0000000 --- a/src/Token.Module/Extensions/TokenApplicationExtensions.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; - -namespace Token.Module.Extensions; - - -public static class TokenApplicationExtensions -{ - public static IWebHostEnvironment? GetEnvironment( - this IApplicationBuilder app) - { - return app.ApplicationServices.GetService(); - } - - public static IConfiguration? GetConfiguration(this IApplicationBuilder app) => app.ApplicationServices.GetService(); - - public static ILoggerFactory? GetLoggerFactory(IApplicationBuilder app) => app.ApplicationServices.GetService(); -} \ No newline at end of file diff --git a/src/Token.Module/Token.Module.csproj b/src/Token.Module/Token.Module.csproj index 0c1beff..7e5bd5b 100644 --- a/src/Token.Module/Token.Module.csproj +++ b/src/Token.Module/Token.Module.csproj @@ -10,18 +10,18 @@ true https://github.com/239573049/token-module https://github.com/239573049/token-module - 增加主动依赖注入自动化, - + 新增扩展方法 +1.GetEnvironment() +2.GetConfiguration() +3.GetLoggerFactory() logo.png - 1.1.0 + 1.1.3 - - @@ -32,10 +32,4 @@ - - - C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\6.0.6\Microsoft.AspNetCore.Hosting.Abstractions.dll - - - diff --git a/test/NetCore.HttpApi/NetCoreHttpApiModule.cs b/test/NetCore.HttpApi/NetCoreHttpApiModule.cs index 8d4c2bb..b86ac89 100644 --- a/test/NetCore.HttpApi/NetCoreHttpApiModule.cs +++ b/test/NetCore.HttpApi/NetCoreHttpApiModule.cs @@ -5,7 +5,6 @@ using Microsoft.Extensions.Hosting; using Microsoft.OpenApi.Models; using NetCore.Domain; using Token.Module; -using Token.Module.Extensions; namespace NetCore.HttpApi; @@ -78,7 +77,7 @@ public class NetCoreHttpApiModule : TokenModule private void UseSwagger(IApplicationBuilder app) { - var env = app.GetEnvironment(); + var env = app.ApplicationServices.GetService(); if (env.IsDevelopment()) { -- Gitee From 775e296b212d93b4e2ffe6b09e8257211b5d6878 Mon Sep 17 00:00:00 2001 From: token <239573049@qq.com> Date: Thu, 7 Jul 2022 14:13:04 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=89=A9=E5=B1=95=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Extensions/TokenApplicationExtensions.cs | 18 ++++++++++++++++++ .../Extensions/TokenServiceExtensions.cs | 17 +++++++++++++++++ src/Token.Module/Token.Module.csproj | 11 +++++------ 3 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 src/Token.Module/Extensions/TokenApplicationExtensions.cs create mode 100644 src/Token.Module/Extensions/TokenServiceExtensions.cs diff --git a/src/Token.Module/Extensions/TokenApplicationExtensions.cs b/src/Token.Module/Extensions/TokenApplicationExtensions.cs new file mode 100644 index 0000000..772c80d --- /dev/null +++ b/src/Token.Module/Extensions/TokenApplicationExtensions.cs @@ -0,0 +1,18 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; + +namespace Token.Module.Extensions; + +public static class TokenApplicationExtensions +{ + public static TService? GetService(this IApplicationBuilder app) => + app.ApplicationServices.GetService(); + + public static IConfiguration? GetConfiguration(this IApplicationBuilder app) => + app.ApplicationServices.GetService(); + + public static ILoggerFactory? GetLoggerFactory(this IApplicationBuilder app) => + app.ApplicationServices.GetService(); +} \ No newline at end of file diff --git a/src/Token.Module/Extensions/TokenServiceExtensions.cs b/src/Token.Module/Extensions/TokenServiceExtensions.cs new file mode 100644 index 0000000..d96e24c --- /dev/null +++ b/src/Token.Module/Extensions/TokenServiceExtensions.cs @@ -0,0 +1,17 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; + +namespace Token.Module.Extensions; + +public static class TokenServiceExtensions +{ + public static TService? GetService(this IServiceCollection services) => + services.BuildServiceProvider().GetService(); + + public static IConfiguration? GetConfiguration(this IServiceCollection services) => + services.BuildServiceProvider().GetService(); + + public static ILoggerFactory? GetLoggerFactory(IServiceCollection services) => + services.BuildServiceProvider().GetService(); +} \ No newline at end of file diff --git a/src/Token.Module/Token.Module.csproj b/src/Token.Module/Token.Module.csproj index 7e5bd5b..0d15dd2 100644 --- a/src/Token.Module/Token.Module.csproj +++ b/src/Token.Module/Token.Module.csproj @@ -10,19 +10,18 @@ true https://github.com/239573049/token-module https://github.com/239573049/token-module - 新增扩展方法 -1.GetEnvironment() -2.GetConfiguration() -3.GetLoggerFactory() + 新增扩展方法 logo.png - 1.1.3 + 1.1.5 + + - + -- Gitee From f72132ba1cc766d30849750986d470e1f30c9b68 Mon Sep 17 00:00:00 2001 From: token <239573049@qq.com> Date: Thu, 7 Jul 2022 17:28:31 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Configure=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Token.Module/Token.Module.csproj | 5 +++-- src/Token.Module/TokenModule.cs | 19 ++++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/Token.Module/Token.Module.csproj b/src/Token.Module/Token.Module.csproj index 0d15dd2..5a7a174 100644 --- a/src/Token.Module/Token.Module.csproj +++ b/src/Token.Module/Token.Module.csproj @@ -10,9 +10,9 @@ true https://github.com/239573049/token-module https://github.com/239573049/token-module - 新增扩展方法 + 新增Configure方法 logo.png - 1.1.5 + 1.1.6 @@ -22,6 +22,7 @@ + diff --git a/src/Token.Module/TokenModule.cs b/src/Token.Module/TokenModule.cs index 7de5cc0..6d1440a 100644 --- a/src/Token.Module/TokenModule.cs +++ b/src/Token.Module/TokenModule.cs @@ -1,11 +1,22 @@ using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.AspNetCore.Builder; +using System; namespace Token.Module; -public abstract class TokenModule:ITokenModule +public abstract class TokenModule : ITokenModule { + private IServiceCollection _serviceCollection; + + private IServiceCollection ServiceCollection + { + get => this._serviceCollection != null + ? this._serviceCollection + : throw new Exception("在启动模块的时候ServiceCollection为空"); + set => this._serviceCollection = value; + } + public virtual Task ConfigureServicesAsync(IServiceCollection services) { ConfigureServices(services); @@ -25,4 +36,10 @@ public abstract class TokenModule:ITokenModule public virtual void OnApplicationShutdown(IApplicationBuilder app) { } + + protected void Configure(Action configureOptions) where TOptions : class => + ServiceCollection.Configure(configureOptions); + + protected void Configure(string name, Action configureOptions) where TOptions : class => + ServiceCollection.Configure(name, configureOptions); } \ No newline at end of file -- Gitee From a482fb42accc515e014fc4332274bb22c3bb20f8 Mon Sep 17 00:00:00 2001 From: token <239573049@qq.com> Date: Thu, 7 Jul 2022 18:49:13 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=96=B0=E5=A2=9EConfigure=E6=89=A9?= =?UTF-8?q?=E5=B1=95=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Token.Module/ITokenModule.cs | 8 ++++---- src/Token.Module/Token.Module.csproj | 4 ++-- src/Token.Module/TokenModule.cs | 15 ++++----------- test/NetCore.HttpApi/Modules/TokenOptions.cs | 8 ++++++++ test/NetCoreTest/NetCoreTestModule.cs | 1 - 5 files changed, 18 insertions(+), 18 deletions(-) create mode 100644 test/NetCore.HttpApi/Modules/TokenOptions.cs diff --git a/src/Token.Module/ITokenModule.cs b/src/Token.Module/ITokenModule.cs index 6c40670..d817be1 100644 --- a/src/Token.Module/ITokenModule.cs +++ b/src/Token.Module/ITokenModule.cs @@ -6,11 +6,11 @@ namespace Token.Module; public interface ITokenModule { - Task ConfigureServicesAsync(IServiceCollection context); + Task ConfigureServicesAsync(IServiceCollection services); - void ConfigureServices(IServiceCollection context); + void ConfigureServices(IServiceCollection services); - Task OnApplicationShutdownAsync(IApplicationBuilder context); + Task OnApplicationShutdownAsync(IApplicationBuilder app); - void OnApplicationShutdown(IApplicationBuilder context); + void OnApplicationShutdown(IApplicationBuilder app); } \ No newline at end of file diff --git a/src/Token.Module/Token.Module.csproj b/src/Token.Module/Token.Module.csproj index 5a7a174..3714e76 100644 --- a/src/Token.Module/Token.Module.csproj +++ b/src/Token.Module/Token.Module.csproj @@ -10,9 +10,9 @@ true https://github.com/239573049/token-module https://github.com/239573049/token-module - 新增Configure方法 + 修复Configure无法问题 logo.png - 1.1.6 + 1.1.7 diff --git a/src/Token.Module/TokenModule.cs b/src/Token.Module/TokenModule.cs index 6d1440a..1e1df13 100644 --- a/src/Token.Module/TokenModule.cs +++ b/src/Token.Module/TokenModule.cs @@ -8,17 +8,10 @@ namespace Token.Module; public abstract class TokenModule : ITokenModule { private IServiceCollection _serviceCollection; - - private IServiceCollection ServiceCollection - { - get => this._serviceCollection != null - ? this._serviceCollection - : throw new Exception("在启动模块的时候ServiceCollection为空"); - set => this._serviceCollection = value; - } - + public virtual Task ConfigureServicesAsync(IServiceCollection services) { + _serviceCollection = services; ConfigureServices(services); return Task.CompletedTask; } @@ -38,8 +31,8 @@ public abstract class TokenModule : ITokenModule } protected void Configure(Action configureOptions) where TOptions : class => - ServiceCollection.Configure(configureOptions); + _serviceCollection.Configure(configureOptions); protected void Configure(string name, Action configureOptions) where TOptions : class => - ServiceCollection.Configure(name, configureOptions); + _serviceCollection.Configure(name, configureOptions); } \ No newline at end of file diff --git a/test/NetCore.HttpApi/Modules/TokenOptions.cs b/test/NetCore.HttpApi/Modules/TokenOptions.cs new file mode 100644 index 0000000..77e9d3d --- /dev/null +++ b/test/NetCore.HttpApi/Modules/TokenOptions.cs @@ -0,0 +1,8 @@ +namespace NetCore.HttpApi.Modules; + +public class TokenOptions +{ + public const string Name = "Token"; + + +} \ No newline at end of file diff --git a/test/NetCoreTest/NetCoreTestModule.cs b/test/NetCoreTest/NetCoreTestModule.cs index ff35021..a5496ba 100644 --- a/test/NetCoreTest/NetCoreTestModule.cs +++ b/test/NetCoreTest/NetCoreTestModule.cs @@ -12,7 +12,6 @@ public class NetCoreTestModule :TokenModule { public override void ConfigureServices(IServiceCollection services) { - } public override void OnApplicationShutdown(IApplicationBuilder app) -- Gitee