这似乎是一个类似的问题,但没有一个答案适用于我的代码...: 在Main Program.cs中读取appsettings.json
这非常相似,但出于某种原因对我不起作用: ASP.NET Core 6如何在设置期间访问配置
我正在将一个 .NET 6 beta 应用程序移植到 .NET 6 的稳定版本。
这意味着我想移植负责导入 IConfiguration 的代码(是的,我知道它与单独的 Startup.cs
和 Program.cs
文件向后兼容,但我愿意使用新的语法)。IConfiguration 基本上是 ASP.NET Core 中的 appsettings.json 文件。
在旧代码中,它看起来像这样:
public class Startup
{
internal static IConfiguration Configuration { get; private set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
我尝试了以下方法:
using Microsoft.Extensions.Configuration;
// IConfiguration init test
var Configuration = builder.Configuration;
看起来 Microsoft.Extensions.Configuration 甚至没被使用!我得到的语法是从这篇博客文章中学来的:https://gavilan.blog/2021/08/19/getting-the-iconfiguration-in-the-program-class-asp-net-core-6/
这个问题很基础,但我好像做不对。希望能得到任何帮助以解决这个问题,因为它在新的 .NET 6 minimal API 上可以工作。
我发现这个指南很有用,但显然没有解决手头的问题:https://www.mikesdotnetting.com/article/357/razor-pages-startup-in-net-6
在另一个 Model 中,我有这段代码也不再有效:
secret = Startup.Configuration["GoogleRecaptchaV3:Secret"];
path = Startup.Configuration["GoogleRecaptchaV3:ApiUrl"];
我尝试将“Startup”替换为“Program”,但似乎没有起作用...
我得到的错误是:
'Program' does not contain a definition for 'Configuration'
'Program' does not contain a definition for 'Configuration'
听起来像是语法错误,您可以分享整个文件吗? - Rand RandomStartup
替换为Program
。 - Munchkin