Browse Source

增加DomainConfig属性

陈国伟 3 years ago
parent
commit
daef121bf2
2 changed files with 10 additions and 3 deletions
  1. 1 1
      FastGithub.Http/HttpClientFactory.cs
  2. 9 2
      FastGithub.Http/LifetimeHttpHandler.cs

+ 1 - 1
FastGithub.Http/HttpClientFactory.cs

@@ -75,7 +75,7 @@ namespace FastGithub.Http
         private void OnLifetimeHttpHandlerDeactivate(LifetimeHttpHandler lifetimeHttpHandler)
         {
             // 切换激活状态的记录的实例
-            var domainConfig = ((HttpClientHandler)lifetimeHttpHandler.InnerHandler!).DomainConfig;
+            var domainConfig = lifetimeHttpHandler.DomainConfig;
             this.httpHandlerLazyCache[domainConfig] = this.CreateLifetimeHttpHandlerLazy(domainConfig);
             this.httpHandlerCleaner.Add(lifetimeHttpHandler);
         }

+ 9 - 2
FastGithub.Http/LifetimeHttpHandler.cs

@@ -1,4 +1,5 @@
-using System;
+using FastGithub.Configuration;
+using System;
 using System.Net.Http;
 using System.Threading;
 
@@ -11,15 +12,21 @@ namespace FastGithub.Http
     {
         private readonly Timer timer;
 
+        /// <summary>
+        /// 获取域名配置
+        /// </summary>
+        public DomainConfig DomainConfig { get; }
+
         /// <summary>
         /// 具有生命周期的HttpHandler
         /// </summary>
         /// <param name="handler">HttpHandler</param>
         /// <param name="lifeTime">拦截器的生命周期</param>
         /// <param name="deactivateAction">失效回调</param>
-        public LifetimeHttpHandler(HttpMessageHandler handler, TimeSpan lifeTime, Action<LifetimeHttpHandler> deactivateAction)
+        public LifetimeHttpHandler(HttpClientHandler handler, TimeSpan lifeTime, Action<LifetimeHttpHandler> deactivateAction)
             : base(handler)
         {
+            this.DomainConfig = handler.DomainConfig;
             this.timer = new Timer(this.OnTimerCallback, deactivateAction, lifeTime, Timeout.InfiniteTimeSpan);
         }