using FastGithub.Configuration; using FastGithub.DomainResolve; using Microsoft.Extensions.Options; namespace FastGithub.Http { /// /// HttpClient工厂 /// sealed class HttpClientFactory : IHttpClientFactory { private HttpClientHandler httpClientHanlder; /// /// HttpClient工厂 /// /// /// public HttpClientFactory( IDomainResolver domainResolver, IOptionsMonitor options) { this.httpClientHanlder = new HttpClientHandler(domainResolver); options.OnChange(opt => this.httpClientHanlder = new HttpClientHandler(domainResolver)); } /// /// 创建httpClient /// /// /// public HttpClient CreateHttpClient(DomainConfig domainConfig) { return new HttpClient(domainConfig, this.httpClientHanlder, disposeHandler: false); } } }