diff --git a/FastGithub.Core/DnsConfig.cs b/FastGithub.Configuration/DnsConfig.cs similarity index 98% rename from FastGithub.Core/DnsConfig.cs rename to FastGithub.Configuration/DnsConfig.cs index 1ed4329..f636a38 100644 --- a/FastGithub.Core/DnsConfig.cs +++ b/FastGithub.Configuration/DnsConfig.cs @@ -2,7 +2,7 @@ using System.Net; using System.Net.NetworkInformation; -namespace FastGithub +namespace FastGithub.Configuration { /// /// dns配置 diff --git a/FastGithub.Core/DomainConfig.cs b/FastGithub.Configuration/DomainConfig.cs similarity index 90% rename from FastGithub.Core/DomainConfig.cs rename to FastGithub.Configuration/DomainConfig.cs index 161795d..75dbc5b 100644 --- a/FastGithub.Core/DomainConfig.cs +++ b/FastGithub.Configuration/DomainConfig.cs @@ -1,6 +1,6 @@ using System; -namespace FastGithub +namespace FastGithub.Configuration { /// /// 域名配置 @@ -47,11 +47,11 @@ namespace FastGithub { if (this.TlsSni == false) { - return FastGithub.TlsSniPattern.None; + return Configuration.TlsSniPattern.None; } if (string.IsNullOrEmpty(this.TlsSniPattern)) { - return FastGithub.TlsSniPattern.Domain; + return Configuration.TlsSniPattern.Domain; } return new TlsSniPattern(this.TlsSniPattern); } diff --git a/FastGithub.Core/DomainPattern.cs b/FastGithub.Configuration/DomainPattern.cs similarity index 98% rename from FastGithub.Core/DomainPattern.cs rename to FastGithub.Configuration/DomainPattern.cs index 5bb6d9d..12f425e 100644 --- a/FastGithub.Core/DomainPattern.cs +++ b/FastGithub.Configuration/DomainPattern.cs @@ -1,7 +1,7 @@ using System; using System.Text.RegularExpressions; -namespace FastGithub +namespace FastGithub.Configuration { /// /// 表示域名表达式 diff --git a/FastGithub.Configuration/FastGithub.Configuration.csproj b/FastGithub.Configuration/FastGithub.Configuration.csproj new file mode 100644 index 0000000..79384a7 --- /dev/null +++ b/FastGithub.Configuration/FastGithub.Configuration.csproj @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/FastGithub.Core/FastGithubConfig.cs b/FastGithub.Configuration/FastGithubConfig.cs similarity index 99% rename from FastGithub.Core/FastGithubConfig.cs rename to FastGithub.Configuration/FastGithubConfig.cs index c6f5490..424f593 100644 --- a/FastGithub.Core/FastGithubConfig.cs +++ b/FastGithub.Configuration/FastGithubConfig.cs @@ -7,7 +7,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Net; -namespace FastGithub +namespace FastGithub.Configuration { /// /// FastGithub配置 diff --git a/FastGithub.Core/FastGithubException.cs b/FastGithub.Configuration/FastGithubException.cs similarity index 95% rename from FastGithub.Core/FastGithubException.cs rename to FastGithub.Configuration/FastGithubException.cs index d601770..7a4eb46 100644 --- a/FastGithub.Core/FastGithubException.cs +++ b/FastGithub.Configuration/FastGithubException.cs @@ -1,6 +1,6 @@ using System; -namespace FastGithub +namespace FastGithub.Configuration { /// /// 表示FastGithub异常 diff --git a/FastGithub.Core/FastGithubOptions.cs b/FastGithub.Configuration/FastGithubOptions.cs similarity index 95% rename from FastGithub.Core/FastGithubOptions.cs rename to FastGithub.Configuration/FastGithubOptions.cs index e132be2..6813525 100644 --- a/FastGithub.Core/FastGithubOptions.cs +++ b/FastGithub.Configuration/FastGithubOptions.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace FastGithub +namespace FastGithub.Configuration { /// /// FastGithub的配置 diff --git a/FastGithub.Core/ResponseConfig.cs b/FastGithub.Configuration/ResponseConfig.cs similarity index 92% rename from FastGithub.Core/ResponseConfig.cs rename to FastGithub.Configuration/ResponseConfig.cs index b547337..fd2e7bc 100644 --- a/FastGithub.Core/ResponseConfig.cs +++ b/FastGithub.Configuration/ResponseConfig.cs @@ -1,4 +1,4 @@ -namespace FastGithub +namespace FastGithub.Configuration { /// /// 响应配置 diff --git a/FastGithub.Configuration/ServiceCollectionExtensions.cs b/FastGithub.Configuration/ServiceCollectionExtensions.cs new file mode 100644 index 0000000..cc55ba9 --- /dev/null +++ b/FastGithub.Configuration/ServiceCollectionExtensions.cs @@ -0,0 +1,24 @@ +using FastGithub.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Options; + +namespace FastGithub +{ + /// + /// 服务注册扩展 + /// + public static class ServiceCollectionExtensions + { + /// + /// 添加配置服务 + /// + /// + /// + public static OptionsBuilder AddConfiguration(this IServiceCollection services) + { + services.TryAddSingleton(); + return services.AddOptions(); + } + } +} diff --git a/FastGithub.Core/TlsSniPattern.cs b/FastGithub.Configuration/TlsSniPattern.cs similarity index 98% rename from FastGithub.Core/TlsSniPattern.cs rename to FastGithub.Configuration/TlsSniPattern.cs index 888fe83..90d346a 100644 --- a/FastGithub.Core/TlsSniPattern.cs +++ b/FastGithub.Configuration/TlsSniPattern.cs @@ -1,7 +1,7 @@ using System; using System.Net; -namespace FastGithub +namespace FastGithub.Configuration { /// /// Sni自定义值表达式 diff --git a/FastGithub.Core/FastGithub.Core.csproj b/FastGithub.Core/FastGithub.Core.csproj deleted file mode 100644 index 76fa498..0000000 --- a/FastGithub.Core/FastGithub.Core.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - - FastGithub - - - - - - - - diff --git a/FastGithub.Dns/DnsHostedService.cs b/FastGithub.Dns/DnsHostedService.cs index f421ba3..6831b5f 100644 --- a/FastGithub.Dns/DnsHostedService.cs +++ b/FastGithub.Dns/DnsHostedService.cs @@ -1,4 +1,5 @@ -using Microsoft.Extensions.Hosting; +using FastGithub.Configuration; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using System; diff --git a/FastGithub.Dns/FastGithub.Dns.csproj b/FastGithub.Dns/FastGithub.Dns.csproj index 348268c..506a110 100644 --- a/FastGithub.Dns/FastGithub.Dns.csproj +++ b/FastGithub.Dns/FastGithub.Dns.csproj @@ -10,6 +10,6 @@ - + diff --git a/FastGithub.Dns/HostsFileValidator.cs b/FastGithub.Dns/HostsFileValidator.cs index 466d282..de71c46 100644 --- a/FastGithub.Dns/HostsFileValidator.cs +++ b/FastGithub.Dns/HostsFileValidator.cs @@ -1,4 +1,5 @@ -using Microsoft.Extensions.Logging; +using FastGithub.Configuration; +using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.IO; diff --git a/FastGithub.Dns/RequestResolver.cs b/FastGithub.Dns/RequestResolver.cs index e9c5a3b..84cd48a 100644 --- a/FastGithub.Dns/RequestResolver.cs +++ b/FastGithub.Dns/RequestResolver.cs @@ -1,6 +1,7 @@ using DNS.Client.RequestResolver; using DNS.Protocol; using DNS.Protocol.ResourceRecords; +using FastGithub.Configuration; using Microsoft.Extensions.Logging; using System; using System.Linq; diff --git a/FastGithub.Dns/DnsServiceCollectionExtensions.cs b/FastGithub.Dns/ServiceCollectionExtensions.cs similarity index 52% rename from FastGithub.Dns/DnsServiceCollectionExtensions.cs rename to FastGithub.Dns/ServiceCollectionExtensions.cs index b80527f..454734f 100644 --- a/FastGithub.Dns/DnsServiceCollectionExtensions.cs +++ b/FastGithub.Dns/ServiceCollectionExtensions.cs @@ -1,12 +1,13 @@ using FastGithub.Dns; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; namespace FastGithub { /// - /// dns服务注册扩展 + /// 服务注册扩展 /// - public static class DnsServiceCollectionExtensions + public static class ServiceCollectionExtensions { /// /// 注册dns服务 @@ -15,11 +16,10 @@ namespace FastGithub /// public static IServiceCollection AddDnsServer(this IServiceCollection services) { - return services - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddHostedService(); + services.TryAddSingleton(); + services.TryAddSingleton(); + services.TryAddSingleton(); + return services.AddHostedService(); } } } diff --git a/FastGithub.DomainResolve/DnscryptProxyService.cs b/FastGithub.DomainResolve/DnscryptProxyService.cs index 76c19da..74b0ee8 100644 --- a/FastGithub.DomainResolve/DnscryptProxyService.cs +++ b/FastGithub.DomainResolve/DnscryptProxyService.cs @@ -1,4 +1,5 @@ -using System; +using FastGithub.Configuration; +using System; using System.Diagnostics; using System.Linq; using System.Threading; diff --git a/FastGithub.DomainResolve/DomainResolver.cs b/FastGithub.DomainResolve/DomainResolver.cs index d04bfbb..fb629c3 100644 --- a/FastGithub.DomainResolve/DomainResolver.cs +++ b/FastGithub.DomainResolve/DomainResolver.cs @@ -1,5 +1,6 @@ using DNS.Client; using DNS.Protocol; +using FastGithub.Configuration; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Logging; using System; diff --git a/FastGithub.DomainResolve/FastGithub.DomainResolve.csproj b/FastGithub.DomainResolve/FastGithub.DomainResolve.csproj index f84bc11..7b2c177 100644 --- a/FastGithub.DomainResolve/FastGithub.DomainResolve.csproj +++ b/FastGithub.DomainResolve/FastGithub.DomainResolve.csproj @@ -4,31 +4,34 @@ - - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest + + + + diff --git a/FastGithub.DomainResolve/DomainResolveServiceCollectionExtensions.cs b/FastGithub.DomainResolve/ServiceCollectionExtensions.cs similarity index 76% rename from FastGithub.DomainResolve/DomainResolveServiceCollectionExtensions.cs rename to FastGithub.DomainResolve/ServiceCollectionExtensions.cs index 06d5e83..2f49da7 100644 --- a/FastGithub.DomainResolve/DomainResolveServiceCollectionExtensions.cs +++ b/FastGithub.DomainResolve/ServiceCollectionExtensions.cs @@ -5,9 +5,9 @@ using Microsoft.Extensions.DependencyInjection.Extensions; namespace FastGithub { /// - /// 域名解析相关服务注册扩展 + /// 服务注册扩展 /// - public static class DomainResolveServiceCollectionExtensions + public static class ServiceCollectionExtensions { /// /// 注册域名解析相关服务 @@ -19,8 +19,7 @@ namespace FastGithub services.AddMemoryCache(); services.TryAddSingleton(); services.TryAddSingleton(); - services.AddHostedService(); - return services; + return services.AddHostedService(); } } } diff --git a/FastGithub.Http/FastGithub.Http.csproj b/FastGithub.Http/FastGithub.Http.csproj index 82af854..655769c 100644 --- a/FastGithub.Http/FastGithub.Http.csproj +++ b/FastGithub.Http/FastGithub.Http.csproj @@ -2,7 +2,6 @@ - diff --git a/FastGithub.Http/HttpClient.cs b/FastGithub.Http/HttpClient.cs index f046e64..8db9f8c 100644 --- a/FastGithub.Http/HttpClient.cs +++ b/FastGithub.Http/HttpClient.cs @@ -1,4 +1,5 @@ -using FastGithub.DomainResolve; +using FastGithub.Configuration; +using FastGithub.DomainResolve; using System; using System.Net.Http; using System.Threading; diff --git a/FastGithub.Http/HttpClientFactory.cs b/FastGithub.Http/HttpClientFactory.cs index 7b80701..60a2596 100644 --- a/FastGithub.Http/HttpClientFactory.cs +++ b/FastGithub.Http/HttpClientFactory.cs @@ -1,4 +1,5 @@ -using FastGithub.DomainResolve; +using FastGithub.Configuration; +using FastGithub.DomainResolve; using Microsoft.Extensions.Options; namespace FastGithub.Http diff --git a/FastGithub.Http/IHttpClientFactory.cs b/FastGithub.Http/IHttpClientFactory.cs index ce71e74..e0e5fc5 100644 --- a/FastGithub.Http/IHttpClientFactory.cs +++ b/FastGithub.Http/IHttpClientFactory.cs @@ -1,4 +1,6 @@ -namespace FastGithub.Http +using FastGithub.Configuration; + +namespace FastGithub.Http { /// /// httpClient工厂 diff --git a/FastGithub.Http/RequestContext.cs b/FastGithub.Http/RequestContext.cs index 83a0d41..9934030 100644 --- a/FastGithub.Http/RequestContext.cs +++ b/FastGithub.Http/RequestContext.cs @@ -1,4 +1,6 @@ -namespace FastGithub.Http +using FastGithub.Configuration; + +namespace FastGithub.Http { /// /// 表示请求上下文 diff --git a/FastGithub.Http/HttpClientServiceCollectionExtensions.cs b/FastGithub.Http/ServiceCollectionExtensions.cs similarity index 85% rename from FastGithub.Http/HttpClientServiceCollectionExtensions.cs rename to FastGithub.Http/ServiceCollectionExtensions.cs index 0f86f6e..b098178 100644 --- a/FastGithub.Http/HttpClientServiceCollectionExtensions.cs +++ b/FastGithub.Http/ServiceCollectionExtensions.cs @@ -5,9 +5,9 @@ using Microsoft.Extensions.DependencyInjection.Extensions; namespace FastGithub { /// - /// httpClient的服务注册扩展 + /// 服务注册扩展 /// - public static class HttpClientServiceCollectionExtensions + public static class ServiceCollectionExtensions { /// /// 添加HttpClient相关服务 diff --git a/FastGithub.ReverseProxy/FastGithub.ReverseProxy.csproj b/FastGithub.ReverseProxy/FastGithub.ReverseProxy.csproj index 3f33e5c..61d7c61 100644 --- a/FastGithub.ReverseProxy/FastGithub.ReverseProxy.csproj +++ b/FastGithub.ReverseProxy/FastGithub.ReverseProxy.csproj @@ -11,7 +11,6 @@ - diff --git a/FastGithub.ReverseProxy/ReverseProxyMiddleware.cs b/FastGithub.ReverseProxy/ReverseProxyMiddleware.cs index 195db6b..2600627 100644 --- a/FastGithub.ReverseProxy/ReverseProxyMiddleware.cs +++ b/FastGithub.ReverseProxy/ReverseProxyMiddleware.cs @@ -1,4 +1,5 @@ -using FastGithub.Http; +using FastGithub.Configuration; +using FastGithub.Http; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using System; @@ -22,7 +23,7 @@ namespace FastGithub.ReverseProxy IHttpClientFactory httpClientFactory, FastGithubConfig fastGithubConfig, ILogger logger) - { + { this.httpForwarder = httpForwarder; this.httpClientFactory = httpClientFactory; this.fastGithubConfig = fastGithubConfig; diff --git a/FastGithub.Upgrade/FastGithub.Upgrade.csproj b/FastGithub.Upgrade/FastGithub.Upgrade.csproj index e0e34fc..1ee4920 100644 --- a/FastGithub.Upgrade/FastGithub.Upgrade.csproj +++ b/FastGithub.Upgrade/FastGithub.Upgrade.csproj @@ -5,7 +5,6 @@ - diff --git a/FastGithub.Upgrade/ServiceCollectionExtensions.cs b/FastGithub.Upgrade/ServiceCollectionExtensions.cs new file mode 100644 index 0000000..be2a873 --- /dev/null +++ b/FastGithub.Upgrade/ServiceCollectionExtensions.cs @@ -0,0 +1,23 @@ +using FastGithub.Upgrade; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; + +namespace FastGithub +{ + /// + /// 服务注册扩展 + /// + public static class ServiceCollectionExtensions + { + /// + /// 添加升级服务 + /// + /// + /// + public static IServiceCollection AddUpgrade(this IServiceCollection services) + { + services.TryAddSingleton(); + return services; + } + } +} diff --git a/FastGithub.Upgrade/UpgradeService.cs b/FastGithub.Upgrade/UpgradeService.cs index 4ddcf73..c340bea 100644 --- a/FastGithub.Upgrade/UpgradeService.cs +++ b/FastGithub.Upgrade/UpgradeService.cs @@ -1,4 +1,5 @@ -using FastGithub.DomainResolve; +using FastGithub.Configuration; +using FastGithub.DomainResolve; using FastGithub.Http; using Microsoft.Extensions.Logging; using System; diff --git a/FastGithub.sln b/FastGithub.sln index 11d0ce0..f9da1a6 100644 --- a/FastGithub.sln +++ b/FastGithub.sln @@ -5,8 +5,6 @@ VisualStudioVersion = 16.0.31320.298 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastGithub", "FastGithub\FastGithub.csproj", "{C1099390-6103-4917-A740-A3002B542FE0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastGithub.Core", "FastGithub.Core\FastGithub.Core.csproj", "{4E4841D2-F743-40BB-BE28-729DB53775CC}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastGithub.Dns", "FastGithub.Dns\FastGithub.Dns.csproj", "{43FF9C79-51D5-4037-AA0B-CA3006E2A7E6}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastGithub.Upgrade", "FastGithub.Upgrade\FastGithub.Upgrade.csproj", "{8239A077-A84C-4FDF-A204-02A2DE4243F3}" @@ -17,6 +15,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastGithub.Http", "FastGith EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastGithub.DomainResolve", "FastGithub.DomainResolve\FastGithub.DomainResolve.csproj", "{5D26ABDD-F341-4EB7-9D08-FCB80F79B4B4}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastGithub.Configuration", "FastGithub.Configuration\FastGithub.Configuration.csproj", "{C63CEBB1-56DA-4AC3-BDC9-52424EC292A0}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -27,10 +27,6 @@ Global {C1099390-6103-4917-A740-A3002B542FE0}.Debug|Any CPU.Build.0 = Debug|Any CPU {C1099390-6103-4917-A740-A3002B542FE0}.Release|Any CPU.ActiveCfg = Release|Any CPU {C1099390-6103-4917-A740-A3002B542FE0}.Release|Any CPU.Build.0 = Release|Any CPU - {4E4841D2-F743-40BB-BE28-729DB53775CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4E4841D2-F743-40BB-BE28-729DB53775CC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4E4841D2-F743-40BB-BE28-729DB53775CC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4E4841D2-F743-40BB-BE28-729DB53775CC}.Release|Any CPU.Build.0 = Release|Any CPU {43FF9C79-51D5-4037-AA0B-CA3006E2A7E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {43FF9C79-51D5-4037-AA0B-CA3006E2A7E6}.Debug|Any CPU.Build.0 = Debug|Any CPU {43FF9C79-51D5-4037-AA0B-CA3006E2A7E6}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -51,6 +47,10 @@ Global {5D26ABDD-F341-4EB7-9D08-FCB80F79B4B4}.Debug|Any CPU.Build.0 = Debug|Any CPU {5D26ABDD-F341-4EB7-9D08-FCB80F79B4B4}.Release|Any CPU.ActiveCfg = Release|Any CPU {5D26ABDD-F341-4EB7-9D08-FCB80F79B4B4}.Release|Any CPU.Build.0 = Release|Any CPU + {C63CEBB1-56DA-4AC3-BDC9-52424EC292A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C63CEBB1-56DA-4AC3-BDC9-52424EC292A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C63CEBB1-56DA-4AC3-BDC9-52424EC292A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C63CEBB1-56DA-4AC3-BDC9-52424EC292A0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/FastGithub/Startup.cs b/FastGithub/Startup.cs index 7ef5a5e..186d366 100644 --- a/FastGithub/Startup.cs +++ b/FastGithub/Startup.cs @@ -1,4 +1,3 @@ -using FastGithub.Upgrade; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -27,15 +26,12 @@ namespace FastGithub /// public void ConfigureServices(IServiceCollection services) { + services.AddConfiguration().Bind(this.Configuration.GetSection(nameof(FastGithub))); services.AddDnsServer(); services.AddDomainResolve(); services.AddHttpClient(); services.AddReverseProxy(); - - services.AddSingleton(); - services.Configure(this.Configuration.GetSection(nameof(FastGithub))); - - services.AddSingleton(); + services.AddUpgrade(); services.AddHostedService(); services.AddControllersWithViews(); @@ -53,9 +49,7 @@ namespace FastGithub app.UseRouting(); app.UseEndpoints(endpoints => { - endpoints.MapControllerRoute( - name: "default", - pattern: "{controller=Home}/{action=Index}/{id?}"); + endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); }); } }