feat: 初始化NewLife Studio项目,完成基础框架与数据管理模块
何炳宏
authored at
2026-05-26 12:09:09
NewLife.Studio
namespace NewLife.Studio.Core;
/// <summary>全局服务定位器,用于模块访问 DI 容器中的服务</summary>
public static class StudioServices
{
private static IServiceProvider? _serviceProvider;
/// <summary>初始化服务定位器</summary>
public static void Initialize(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
}
/// <summary>获取服务</summary>
public static T? GetService<T>() where T : class
{
return _serviceProvider?.GetService(typeof(T)) as T;
}
/// <summary>获取必需服务</summary>
public static T GetRequiredService<T>() where T : class
{
if (_serviceProvider == null)
throw new InvalidOperationException("ServiceProvider not initialized");
return (T)_serviceProvider.GetService(typeof(T))
?? throw new InvalidOperationException($"Service {typeof(T).Name} not registered");
}
}
|