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();
}
}
}