极简 单页面网站模板如何做网站的版块规划
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:50
当前位置: 首页 > news >正文
极简 单页面网站模板,如何做网站的版块规划,网站建设的招聘要求,搜索引擎优化论文3000字在本文中#xff0c;我们将通过组织一场小型音乐会#xff08;当然是在代码中#xff09;来了解 ASP .NET Core 中的环境变量。让我们从创建项目开始#xff1a; dotnet new web –name Concert 并更新Program.cs#xff1a; // replace this: app.MapGet(/我们将通过组织一场小型音乐会当然是在代码中来了解 ASP .NET Core 中的环境变量。让我们从创建项目开始 dotnet new web –name Concert 并更新Program.cs // replace this: app.MapGet(/, () Hello World!); // with this: app.Logger.LogInformation(Playing {guitar} guitar, builder.Configuration[Guitar]); 设置就是这么简单。现在让我们进行第一次声音检查 cd Concert dotnet run
Produces: # # info: Concert[0] # Playing (null) guitar # …
好吧这不会是一场特别精彩的音乐会null对吧让我们使用环境变量来解决这个问题 export GUITARLesPaul dotnet run unset GUITAR # Output: Playing LesPaul guitar 脚本以此结束unset以确保我们在下一个实验之前有一个干净的环境。 配置 请注意我们Guitar不是直接以环境变量的形式访问而是通过使用IConfiguration访问器抽象来访问。默认情况下ASP .NET Core访问器为我们提供了另外两种使用环境变量挑选吉他的方法 ASPNETCORE_前缀变量 export ASPNETCORE_GUITARTelecaster dotnet run unset ASPNETCORE_GUITAR # Output: Playing Telecaster Guitar 和DOTNET_前缀变量 export DOTNET_GUITARSG dotnet run unset DOTNET_GUITAR # Output: Playing SG guitar 如果你想知道如果我们同时使用两者会发生什么答案如下 export ASPNETCORE_GUITARTelecaster DOTNET_GUITARSG dotnet run unset ASPNETCORE_GUITAR DOTNETGUITAR # Output: Playing SG guitar # DOTNET prefixed variables take precedence 当然IConfiguration不仅限于环境变量。appsettings.json还可以为我们提供配置值所以让我们也在那里设置一把吉他 { Guitar : Stratocaster, … } 并进行一些实验 export DOTNET_GUITARSG dotnet run unset DOTNETGUITAR # Output: Playing Stratocaster guitar # appsettings take precedence over prefixed environment variables export GUITARLesPaul dotnet run unset GUITAR # Output: Playing LesPaul guitar # Unprefixed environment variable takes precedence over appsettings 设置配置值的另一种方法是使用命令行参数。我们已经有了appsettings值让我们也设置环境变量提供命令行参数看看会发生什么 export GUITARLesPaul dotnet run –GuitarFirebird unset GUITAR # Output: Playing Firebird guitar # command line arguments take precedence over everything 我想强调的是优先级和配置源列表并不是很神奇。这只是WebApplication.CreateBuilder(args)注册其配置源的一种方式。因此如果我们扫描其内容我们会在某处找到以下顺序的行 configuration.AddJsonFile(appsettings.json); configuration.AddJsonFile($appsettings.{HostEnvironment.EnvironmentName}.json, optional: true); configuration.AddEnvironmentVariables(prefix: ASPNETCORE); configuration.AddEnvironmentVariables(prefix: DOTNET_); configuration.AddEnvironmentVariables(); configuration.AddCommandLine(args); 特殊环境变量 还有一些环境变量是单独使用的ASP .NET Core。为了先设置一个清晰的实验我们Properties从项目中删除该文件夹。然后执行dotnet run将得到这样的日志 info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5000 info: Microsoft.Hosting.Lifetime[0] Application started. Press CtrlC to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Production 有相当多的主机变量【https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?viewaspnetcore-8.0#host-variables】。但ASPNETCORE_ENVIRONMENT和ASPNETCORE_URLS似乎是最重要的研究它们应该能给我们足够的知识来流畅地操作任何其他托管变量。 export ASPNETCORE_URLShttp://:5100 dotnet run unset ASPNETCORE_URLS # Outputs: Now listening on: http://[::]:5100 export ASPNETCORE_ENVIRONMENTWembley dotnet run unset ASPNETCORE_ENVIRONMENT # Outputs: Hosting environment: Wembley 请注意宿主变量的行为可能与所有其他变量略有不同 export ENVIRONMENTCarnegie dotnet run unset ENVIRONMENT # Outputs: Hosting environment: Production # Unprefixed variable has no effect on the ASP .NET Core 确认【https://github.com/dotnet/aspnetcore/issues/55379#issuecomment-2081539608】这种差异是故意的。但并非每个主机变量都如此表现只有“引导”变量 export URLShttp://:5800 dotnet run unset URLS # Outputs: Now listening on: http://[::]:5800 # Here unprefixed variables not just affect ASP .NET Core # but take precedence over a prefixed variable 章节和下划线 Microsoft.Extensions.Configuration框架也支持嵌套配置。我们先看看它如何与基于 json 的配置一起工作。 appsettings.json { Band : { LeadGuitarist : Clapton }, … } Program.cs: app.Logger.LogInformation({guitarist} playing {guitar}, builder.Configuration[Band:LeadGuitarist], builder.Configuration[Guitar] ); //Output: Clapton playing Stratocaster 对于“嵌套”环境变量使用双下划线 export BandLeadGuitaristHendrix dotnet run unset BandLeadGuitarist # Output: Hendrix playing Stratocaster 请注意使用双下划线是因为:对于某些 shell包括 bash来说它不是有效的标识符。 Fluent 环境变量 您可能会注意到这BandLeadGuitarist是一个不符合典型 shell 约定的变量名。常规格式为BAND_LEAD_GUITARIST。关于环境变量配置提供程序有一个好消息 export BANDLEADGUITARISTHendrix dotnet run unset BANDLEADGUITARIST # Output: Hendrix playing Stratocaster # So the provider is case incensitive 但这个好消息还不足以做到这一点 export Band_LeadGuitaristGilmour dotnet run unset Band_LeadGuitarist # Ouput: Clapton playing Stratocaster (a.k.a no effect) # Single underscore doesnt work as separator export BandLead_GuitaristGilmour dotnet run unset BandLeadGuitarist # Ouput: Clapton playing Stratocaster (a.k.a no effect) # You can not put an arbitrary underscore, too 但是我们可以编写自己的配置提供程序。对于每个环境变量键我们将注册键本身以及下划线的每个可能解释的键作为分隔符和可跳过的部分 public static IEnumerablestring Keys(string rawKey) { yield return rawKey; var parts rawKey.Split().Where(p p ! ).ToArray(); for (var i 1; i parts.Length; i) { var beforeColon parts.Take(i); var afterColon parts.Skip(i); yield return String.Join(, beforeColon) : String.Join(, afterColon); } } 提供程序将加载我们可以从环境变量中获取的所有配置键值对。 public class Provider : ConfigurationProvider { public override void Load() { Data new Dictionarystring, string?(StringComparer.OrdinalIgnoreCase); foreach (DictionaryEntry environmentVariable in Environment.GetEnvironmentVariables()) { var variableKey (string)environmentVariable.Key; var value (string?)environmentVariable.Value; foreach (var key in Keys(variableKey)) { Data.Add(key, value); } } } } 我已经将提供程序制作成 nuget 包因此您可以直接使用它 dotnet add package Fluenv using Fluenv; … builder.Configuration.AddFluentEnvironmentVariables(); 然后几乎任何环境变量的命名都可以起作用包括常规的命名 export BAND_LEAD_GUITARISTGilmour dotnet run unset BAND_LEAD_GUITARIST # Output: Gilmour playing Stratocaster 如果您喜欢此文章请收藏、点赞、评论谢谢祝您快乐每一天。
相关文章
-
吉首自治州住房和城乡建设局网站wordpress 产品模板
吉首自治州住房和城乡建设局网站wordpress 产品模板
- 技术栈
- 2026年03月21日
-
吉首网站建设吉首网站建设中时讯通信建设有限公司网站
吉首网站建设吉首网站建设中时讯通信建设有限公司网站
- 技术栈
- 2026年03月21日
-
吉隆坡建设大学中文网站迪庆州建设局网站
吉隆坡建设大学中文网站迪庆州建设局网站
- 技术栈
- 2026年03月21日
-
极速建站wordpress翻译教程
极速建站wordpress翻译教程
- 技术栈
- 2026年03月21日
-
极速网站建设服务商外包网站开发多少钱
极速网站建设服务商外包网站开发多少钱
- 技术栈
- 2026年03月21日
-
极速在线网站黄页电话号码
极速在线网站黄页电话号码
- 技术栈
- 2026年03月21日
