這似乎是一個類似的問題,但沒有一個答案適合我的代碼......:閱讀 Main Program.cs 中的 appsettings.json
這非常相似,但由于某種原因對我不起作用:ASP.NET Core 6 how to access Configuration during setup
我正在將 .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 最小 API。
我發現本指南很有用,但顯然沒有解決手頭的問題: https ://www.mikesdotnetting.com/article/357/razor-pages-startup-in-net-6
在另一個模型中,我有這個代碼也不再有效:
secret = Startup.Configuration["GoogleRecaptchaV3:Secret"];
path = Startup.Configuration["GoogleRecaptchaV3:ApiUrl"];
我嘗試用 Program 替換 Startup 但它似乎沒有用......
我得到的錯誤是:
'Program' does not contain a definition for 'Configuration'
uj5u.com熱心網友回復:
不需要切換到最小托管模式,您仍然可以使用通用托管(啟動的那個)
似乎 Microsoft.Extensions.Configuration 甚至沒有使用!
using Microsoft.Extensions.Configuration;不需要該指令,因為在 .NET 6 模板中大量使用了新功能全域 using 陳述句
3.
var Configuration = builder.Configuration;
新模板中的Program檔案正在使用另一個相對較新的功能 (C# 9) -頂級陳述句,因此var Configuration它只是一個只能在生成的Main方法內訪問的變數
4.
secret = Startup.Configuration["GoogleRecaptchaV3:Secret"];
您可以通過以下方式在頂級陳述句檔案中訪問此值:
var secret = builder.Configuration["GoogleRecaptchaV3:Secret"];
為了使設定可以在該檔案之外(或在通用托管中)訪問,我強烈建議使用 DI(如此處或此處Startup的檔案中所示)。
如果您有大量依賴于可用靜態配置的代碼并且您需要快速臨時修復,您可以partial Program在頂級陳述句檔案的末尾添加類并執行以下操作:
// ....
WebApplication app = builder.Build();
Configuration = app.Configuration;
// ...
public partial class Program
{
internal static Configuration Configuration { get; private set; }
}
但我強烈建議不要這樣做。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/422421.html
標籤:
上一篇:如何獲得過去5年的銷售額百分比
