Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 在ASP.Net核心MVC中,如何在应用程序启动之间保留变量值?_Asp.net Core_Variables_Asp.net Core Mvc_Persistence_Application Data - Fatal编程技术网

Asp.net core 在ASP.Net核心MVC中,如何在应用程序启动之间保留变量值?

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]

我有一个ASP.NET核心MVC应用程序,可以随时重新启动(维护);如何使一些变量值从一次执行持续到下一次执行

PS:这就是需要将值写为持久值的代码。例如,“LastMaintenanceStartTime=03/04-2020”,维护重启每天发生一次,因此代码需要记住上次重启的时间

在UWP中,我可以执行以下代码,但我似乎找不到ASP.NET Core的等效代码:

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");  
            }  
        }