我正在开发一个跨平台(win / mac / linux)应用程序,并且希望存储我的应用程序状态。 .NET Core建议的这样做方式是什么?
我已经仔细阅读了文档,发现最接近的东西是this,它是针对Visual Studio / .NET Framework(并且我使用VS Code)的。
答案 0 :(得分:0)
如here所述,您可以使用appsettings.json
,它是在dotnet new
命令中的新项目模板中生成和引用的。
答案 1 :(得分:0)
有3种方法,
只需将它们存储在appsettings.json中或作为环境 变量。
对于登台/制作
通过使用 Azure Key Vault 和Microsoft.Extensions.Configuration.AzureKeyVault NuGet软件包,您将能够在实际环境中以最佳方式隐藏项目的配置。
然后您只需将其注入
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, config) =>
{
var root = config.Build();
config.AddAzureKeyVault(
$”https://{root["KeyVault:Vault"]}.vault.azure.net/",
root[“KeyVault:ClientId”],
root[“KeyVault:ClientSecret”]);
})
.UseStartup<Startup>();
尽管您仍然必须存储这三个变量,但Azure具有Azure AD来强制仅访问指定的应用程序。因此,您需要在Azure AD下注册一个应用程序才能使其正常工作。还有一些限制性功能可以帮助您进一步将Azure Key Vault沙盒化。
最后但并非最不重要的,最后一种方法是利用现有的保管库存储选项,例如HashiCorp。像https://github.com/rajanadar/VaultSharp这样的库将帮助您快速有效地实施它。如果您主要使用非Azure提供程序作为服务器,则此方法很适合您。
答案 2 :(得分:0)
您可以使用ConfigurationBuilder中的Microsoft.Extensions.Configuration nuget package
尽管这些文档是针对ASP Core的,但您应该能够在常规的.Net Core应用程序中使用它们。
创建settings.json:
{
"mysetting": "value",
}
并使用它:
var configuration = new ConfigurationBuilder()
.AddJsonFile("settings.json")
.Build();
// get the values from the settings.json
var mySetting = configuration["mysetting"];
Console.WriteLine(mySetting);