using Microsoft.Extensions.DependencyInjection.Extensions; using System; using System.Application.Services; using System.Application.Services.CloudService; // 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.HeaderAppVersion, sc.Settings.AppVersion.ToStringN()); }); services.TryAddSingleton(); services.TryAddSingleton(s => s.GetRequiredService()); services.TryAddSingleton(s => s.GetRequiredService()); return services; } } }