using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Estsh.Client.Common.ServiceUtil { public class ServiceProviderHelper { /// /// 全局服务提供者 /// public static IServiceProvider ServiceProvider { get; private set; } = null!; /// /// 初始化构建ServiceProvider对象 /// /// /// public static void InitServiceProvider(ServiceProvider serviceProvider) { ArgumentNullException.ThrowIfNull(serviceProvider, nameof(serviceProvider)); ServiceProvider = serviceProvider; } /// /// 获取Form服务 /// /// /// /// public static Form GetFormService(Type type) { var service = ServiceProvider.GetRequiredService(type); if (service is Form fService) { return fService; } else { throw new ArgumentException($"{type.FullName} is not a Form"); } } /// /// 获取Form服务 /// /// public static T GetRequiredService() where T : class { return ServiceProvider.GetRequiredService(); } /// /// 获取服务 /// /// public static T GetService() where T : class { return ServiceProvider.GetService(); } } }