123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- using Infrastructure.Model;
- using Microsoft.Extensions.Options;
- using System.Security.Claims;
- namespace Infrastructure
- {
- public static class App
- {
- /// <summary>
- /// 全局配置文件
- /// </summary>
- public static OptionsSetting OptionsSetting => CatchOrDefault(() => ServiceProvider?.GetService<IOptions<OptionsSetting>>()?.Value);
- /// <summary>
- /// 服务提供器
- /// </summary>
- public static IServiceProvider ServiceProvider => InternalApp.ServiceProvider;
- /// <summary>
- /// 获取请求上下文
- /// </summary>
- public static HttpContext HttpContext => CatchOrDefault(() => ServiceProvider?.GetService<IHttpContextAccessor>()?.HttpContext);
- /// <summary>
- /// 获取请求上下文用户
- /// </summary>
- public static ClaimsPrincipal User => HttpContext?.User;
- /// <summary>
- /// 获取用户名
- /// </summary>
- public static string UserName => User?.Identity?.Name;
- /// <summary>
- /// 获取Web主机环境
- /// </summary>
- public static IWebHostEnvironment WebHostEnvironment => InternalApp.WebHostEnvironment;
- /// <summary>
- /// 获取全局配置
- /// </summary>
- public static IConfiguration Configuration => CatchOrDefault(() => InternalApp.Configuration, new ConfigurationBuilder().Build());
- /// <summary>
- /// 获取请求生命周期的服务
- /// </summary>
- /// <typeparam name="TService"></typeparam>
- /// <returns></returns>
- public static TService GetService<TService>()
- where TService : class
- {
- return GetService(typeof(TService)) as TService;
- }
- /// <summary>
- /// 获取请求生命周期的服务
- /// </summary>
- /// <param name="type"></param>
- /// <returns></returns>
- public static object GetService(Type type)
- {
- return ServiceProvider.GetService(type);
- }
- /// <summary>
- /// 获取请求生命周期的服务
- /// </summary>
- /// <typeparam name="TService"></typeparam>
- /// <returns></returns>
- public static TService GetRequiredService<TService>()
- where TService : class
- {
- return GetRequiredService(typeof(TService)) as TService;
- }
- /// <summary>
- /// 获取请求生命周期的服务
- /// </summary>
- /// <param name="type"></param>
- /// <returns></returns>
- public static object GetRequiredService(Type type)
- {
- return ServiceProvider.GetRequiredService(type);
- }
- /// <summary>
- /// 处理获取对象异常问题
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="action">获取对象委托</param>
- /// <param name="defaultValue">默认值</param>
- /// <returns>T</returns>
- private static T CatchOrDefault<T>(Func<T> action, T defaultValue = null)
- where T : class
- {
- try
- {
- return action();
- }
- catch
- {
- return defaultValue ?? null;
- }
- }
- }
- }
|