⭐️ .NET 要在国内真正发展起来,必须得有一些追逐梦想的人在做着不计付出的事情,而我希望自己能贡献一份微薄之力。 ⭐️
Skip to main content

1. App 静态类

1.1 获取全局配置

var settings = App.Settings;

1.2 获取配置对象

// 获取 IConfiguration 对象var configuration = App.Configuration;var value = configuration["xxx:xxx"];// 获取指定节点值并转成 T 类型var data = App.GetConfig<TConfig>("key:key2");// 重载/刷新配置(v2.17+ 版本已移除)App.Configuration.Reload();

1.3 获取环境对象

var webHostEnvironment = App.HostEnvironment;

1.4 获取项目所有程序集

var assemblies = App.Assemblies;

1.5 获取项目所有有效类型

var types = App.EffectiveTypes;

1.6 获取 HttpContext

var httpContext = App.HttpContext;

1.7 获取登录的 User 对象

var contextUser = App.User;// 获取 `Jwt` 存储的信息var userId = App.User?.FindFirstValue("键");

注意引入 System.Security.Claims 命名空间

1.8 获取服务提供器

var serviceProvider = App.ServiceProvider;// 获取根服务,通常用来解析单例和瞬时的,可优化性能var rootService = App.RootServices;

1.9 解析服务

var service = App.GetService<TService>([IServiceProvider]);var service2 = App.GetService(typeof(TService), [IServiceProvider]);var service3 = App.GetRequiredService<TService>([IServiceProvider]);var service4 = App.GetRequiredService(typeof(TService), [IServiceProvider]);

1.10 获取选项配置

var options = App.GetOptions<TOptions>([IServiceProvider]);var options2 = App.GetOptionsMonitor<TOptions>([IServiceProvider]);var options3 = App.GetOptionsSnapshot<TOptions>([IServiceProvider]);

1.11 打印数据到 MiniProfiler

App.PrintToMiniProfiler("分类", "状态", "要打印的消息");

1.12 获取应用名称

var applicationName = App.HostEnvironment.ApplicationName;

1.13 获取启动项目根目录

var webRootPath = App.HostEnvironment.ContentRootPath;

1.14 获取网站根目录 wwwroot 目录

var wwwroot = App.WebHostEnvironment.WebRootPath;

1.15 获取启动项目所在程序集

var webAssembly = Assembly.GetEntryAssembly();

1.16 获取启动项目 bin 目录

var binPath = AppContext.BaseDirectory;

1.17 获取环境变量名

var environmentName = App.HostEnvironment.EnvironmentName;

1.18 判断系统环境

// 判断是否开发环境var isDevelopment = App.HostEnvironment.IsDevelopment();// 判断是否生产环境var isProduction = App.HostEnvironment.IsProduction();// 判断是否 Stage 环境var isStaging = App.HostEnvironment.IsStaging();// 判断是否是特定环境,比如自定义测试环境var isTest = App.HostEnvironment.IsEnvironment("TestEnvironment");

注意,需引用 Microsoft.Extensions.Hosting 命名空间

1.19 获取服务器信息

// 获取系统架构var osArchitecture = RuntimeInformation.OSArchitecture; // => X64// 获取系统名称var osDescription = RuntimeInformation.OSDescription;   // => Windows 10 企业版// 获取进程架构var processArchitecture = RuntimeInformation.ProcessArchitecture;   // => X64// 是否是64位操作系统var is64BitOperatingSystem = Environment.Is64BitOperatingSystem;    // => True

1.20 获取框架底层所有未托管对象

var objs = App.UnmanagedObjects;

1.21 手动释放非托管对象

App.DisposeUnmanagedObjects();  // 通常在非 `Web` 环境中手动处理释放时机

1.22 判断是否是单文件环境

版本说明

以下内容仅限 Furion 3.6.8 + 版本使用。

bool isSingleFileEnviroment = App.SingleFileEnvironment;

1.23 解析命令行参数

版本说明

以下内容仅限 Furion 4.4.5 + 版本使用。

var cmdConfig = App.GetCommandLineConfiguration(args);
cmdConfig.TryGet("参数", out var value);