using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.StaticFiles; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Serilog; using System; using System.Reflection; using System.Text; using Wood.Util.JwtAuthorization; namespace Wood.Util { public class GlobalContext { /// /// All registered service and class instance container. Which are used for dependency injection. /// public static IServiceCollection? Services { get; set; } /// /// Configured service provider. /// public static IServiceProvider? ServiceProvider { get; set; } /// /// Configuration /// public static IConfiguration? Configuration { get; set; } /// /// HostingEnvironment /// public static IWebHostEnvironment? HostingEnvironment { get; set; } /// /// 自定义系统配置信息 /// public static SystemConfig? SystemConfig { get; set; } /// /// JWT权限验证信息 /// public static JwtConfig? JwtConfig { get; set; } /// /// 获取配置信息 /// /// 配置路径 /// public static string? GetConfig(string path) { return Configuration![path]?.ToString(); } /// /// 用户信息 /// public static JwtUserInfo? UserInfo { get { var httpContextAccessor = ServiceProvider?.GetRequiredService(); return httpContextAccessor?.UserInfo(); } } public static string GetVersion() { Version version = Assembly.GetEntryAssembly()!.GetName().Version!; return version.Major + "." + version.Minor; } /// /// 程序启动时,记录目录 /// /// public static void LogWhenStart(IWebHostEnvironment env) { StringBuilder sb = new StringBuilder(); sb.Append("程序启动"); sb.Append(" |ContentRootPath:" + env.ContentRootPath); sb.Append(" |WebRootPath:" + env.WebRootPath); sb.Append(" |IsDevelopment:" + env.IsDevelopment()); Log.Debug(sb.ToString()); } } }