1+ // GameFrameX 组织下的以及组织衍生的项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
2+ //
3+ // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE 文件。
4+ //
5+ // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
6+
7+ using Microsoft . Extensions . Hosting ;
8+
9+ namespace GameFrameX . Utility ;
10+
11+ /// <summary>
12+ /// 环境帮助器
13+ /// </summary>
14+ public static class EnvironmentHelper
15+ {
16+ /// <summary>
17+ /// 判断是否为开发环境
18+ /// 通过检查环境变量 ASPNETCORE_ENVIRONMENT 或 DOTNET_ENVIRONMENT 的值是否为 Development
19+ /// </summary>
20+ /// <returns>如果是开发环境返回true,否则返回false</returns>
21+ public static bool IsDevelopment ( )
22+ {
23+ var env = Environment . GetEnvironmentVariable ( "ASPNETCORE_ENVIRONMENT" )
24+ ?? Environment . GetEnvironmentVariable ( "DOTNET_ENVIRONMENT" ) ;
25+
26+ return string . Equals ( env , Environments . Development , StringComparison . OrdinalIgnoreCase ) ;
27+ }
28+
29+ /// <summary>
30+ /// 判断是否为生产环境
31+ /// 通过检查环境变量 ASPNETCORE_ENVIRONMENT 或 DOTNET_ENVIRONMENT 的值是否为 Production
32+ /// </summary>
33+ /// <returns>如果是生产环境返回true,否则返回false</returns>
34+ public static bool IsProduction ( )
35+ {
36+ var env = Environment . GetEnvironmentVariable ( "ASPNETCORE_ENVIRONMENT" )
37+ ?? Environment . GetEnvironmentVariable ( "DOTNET_ENVIRONMENT" ) ;
38+
39+ return string . Equals ( env , Environments . Production , StringComparison . OrdinalIgnoreCase ) ;
40+ }
41+
42+ /// <summary>
43+ /// 判断是否为测试/预发布环境
44+ /// 通过检查环境变量 ASPNETCORE_ENVIRONMENT 或 DOTNET_ENVIRONMENT 的值是否为 Staging
45+ /// </summary>
46+ /// <returns>如果是测试/预发布环境返回true,否则返回false</returns>
47+ public static bool IsStaging ( )
48+ {
49+ var env = Environment . GetEnvironmentVariable ( "ASPNETCORE_ENVIRONMENT" )
50+ ?? Environment . GetEnvironmentVariable ( "DOTNET_ENVIRONMENT" ) ;
51+
52+ return string . Equals ( env , Environments . Staging , StringComparison . OrdinalIgnoreCase ) ;
53+ }
54+
55+ /// <summary>
56+ /// 判断是否为任意自定义环境
57+ /// 通过检查环境变量 ASPNETCORE_ENVIRONMENT 或 DOTNET_ENVIRONMENT 的值是否与指定环境名称匹配
58+ /// </summary>
59+ /// <param name="environmentName">要检查的环境名称</param>
60+ /// <returns>如果当前环境与指定环境名称匹配返回true,否则返回false</returns>
61+ public static bool IsEnvironment ( string environmentName )
62+ {
63+ var env = Environment . GetEnvironmentVariable ( "ASPNETCORE_ENVIRONMENT" )
64+ ?? Environment . GetEnvironmentVariable ( "DOTNET_ENVIRONMENT" ) ;
65+
66+ return string . Equals ( env , environmentName , StringComparison . OrdinalIgnoreCase ) ;
67+ }
68+ }
0 commit comments