src/YL.Utils/Env/GlobalCore.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using YL.Utils.Extensions;

namespace YL.Utils.Env
{
    /// <summary>
    /// 使用方法app.UseGlobalCore();
    /// </summary>
    public class GlobalCore
    {
        private static IApplicationBuilder _app;

        public static void Configure(IApplicationBuilder app)
        {
            _app = app ?? throw new ArgumentNullException(nameof(app));
        }

        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public static T GetRequiredService<T>()
        {
            using (var scope = _app.ApplicationServices.GetRequiredService<IServiceProvider>().CreateScope())
            {
                return scope.ServiceProvider.GetRequiredService<T>();
            }
        }

        public static IWebHostEnvironment GetHostingEnvironment => GetRequiredService<IWebHostEnvironment>();

        public static HttpContext Current => GetRequiredService<IHttpContextAccessor>().HttpContext;

        public static IConfiguration DIConfig => GetRequiredService<IConfiguration>();

        public static IMemoryCache Cache => GetRequiredService<IMemoryCache>();

        public static string WebRootPath => GetHostingEnvironment?.WebRootPath;

        public static string ContentRootPath => GetHostingEnvironment?.ContentRootPath;

        public static string EnvironmentName => GetHostingEnvironment?.EnvironmentName;

        public static string ApplicationName => GetHostingEnvironment?.ApplicationName;

        public static string GetIp()
        {
            var ip = Current.Request.Headers["X-Forwarded-For"].FirstOrDefault();
            if (ip.IsEmpty())
            {
后面还有 30 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。