Asp.net core 在ASP.Net核心MVC中,如何在应用程序启动之间保留变量值?
我有一个ASP.NET核心MVC应用程序,可以随时重新启动(维护);如何使一些变量值从一次执行持续到下一次执行 PS:这就是需要将值写为持久值的代码。例如,“LastMaintenanceStartTime=03/04-2020”,维护重启每天发生一次,因此代码需要记住上次重启的时间 在UWP中,我可以执行以下代码,但我似乎找不到ASP.NET Core的等效代码:Asp.net core 在ASP.Net核心MVC中,如何在应用程序启动之间保留变量值?,asp.net-core,variables,asp.net-core-mvc,persistence,application-data,Asp.net Core,Variables,Asp.net Core Mvc,Persistence,Application Data,我有一个ASP.NET核心MVC应用程序,可以随时重新启动(维护);如何使一些变量值从一次执行持续到下一次执行 PS:这就是需要将值写为持久值的代码。例如,“LastMaintenanceStartTime=03/04-2020”,维护重启每天发生一次,因此代码需要记住上次重启的时间 在UWP中,我可以执行以下代码,但我似乎找不到ASP.NET Core的等效代码: Windows.Storage.ApplicationData.Current.LocalSettings.Values[key]
Windows.Storage.ApplicationData.Current.LocalSettings.Values[key] = value;
我能找到的最好的代码是以下代码,但这些值仅在同一执行中保持不变:
AppDomain.CurrentDomain.SetData(key, value);
有些人谈论“Application.Settings”,但我似乎无法访问这个名称空间
我还看到一些人谈论可以在执行期间修改的“AppSettings”文件,但保持一个简单值的持久性似乎相当复杂
您有什么建议、解决方案或想法吗?创建一个模型以保存数据和上次执行时间
public class ApplicationData {
public DateTime LastExecutionTime {get;set;}
public string Data {get;set;}
public bool isRunningFirstTime {get;set}
}
1.在第一次运行应用程序时,应将模型更新为当前值,isRunningFirstTime
应设置为false。
2.在第二次运行时,根据日期和应用程序运行计数读取或更新值展开@rashidali answer(并不是说最好,而是): 我找到了解决办法:
static void ReadSetting(string key)
{
try
{
var appSettings = ConfigurationManager.AppSettings;
string result = appSettings[key] ?? "Not Found";
Console.WriteLine(result);
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error reading app settings");
}
}
static void AddUpdateAppSettings(string key, string value)
{
try
{
var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var settings = configFile.AppSettings.Settings;
if (settings[key] == null)
{
settings.Add(key, value);
}
else
{
settings[key].Value = value;
}
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error writing app settings");
}
}
链接:写作部分如何?我需要代码将变量作为持久性写入下一次执行…如何将数据持久化到任何给定的json文件?使用相同的方法。@rashidali抱歉,我不知道如何保存模型。。。这就是我要找的…@ChrisCavell所以最好的方法是创建一个物理文件来保存属性?不一定,您也可以保存到数据库。基本上,接受@rashidali给你的东西,并以最适合你的场景的方式坚持下去。
static void ReadSetting(string key)
{
try
{
var appSettings = ConfigurationManager.AppSettings;
string result = appSettings[key] ?? "Not Found";
Console.WriteLine(result);
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error reading app settings");
}
}
static void AddUpdateAppSettings(string key, string value)
{
try
{
var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var settings = configFile.AppSettings.Settings;
if (settings[key] == null)
{
settings.Add(key, value);
}
else
{
settings[key].Value = value;
}
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error writing app settings");
}
}