using Microsoft.Extensions.DependencyInjection.Extensions; using System; using System.Application.Services; using System.Application.Services.CloudService; using System.Net; // ReSharper disable once CheckNamespace namespace Microsoft.Extensions.DependencyInjection { public static class ServiceCollectionExtensions { /// /// 尝试添加 CloudServiceClient /// /// /// /// public static IServiceCollection TryAddCloudServiceClient(this IServiceCollection services) where T : CloudServiceClientBase { services.TryAddHttpPlatformHelper(); services.AddHttpClient(CloudServiceClientBase.ClientName_, (s, c) => { var sc = s.GetRequiredService(); c.BaseAddress = new Uri(sc.ApiBaseUrl); c.DefaultRequestHeaders.UserAgent.ParseAdd(sc.UserAgent); c.DefaultRequestHeaders.Add(Constants.Headers.Request.AppVersion, sc.Settings.AppVersion.ToStringN()); #if NET5_0_OR_GREATER c.DefaultRequestVersion = HttpVersion.Version20; #endif }); services.TryAddSingleton(); services.TryAddSingleton(s => s.GetRequiredService()); services.TryAddSingleton(s => s.GetRequiredService()); return services; } } }