2012-07-19 254 views
1

如果是,那么我们可以在app.config文件中保存数据或一些文本 然后它是持久性还是临时性的?C#app.config读取和写入

例如,如果我在App.config文件中存储上次访问日期时间,然后关闭/在开始我的应用程序一段时间/天/年后关闭应用程序,可能是我可以检索的上次访问日期时间。如果是,那么如何请解释代码....

感谢, 拉吉

这里是我的代码..

正在尝试从配置文件.. 日期时间,但显示错误对象不设置为一个对象像...

System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

if (email.To.Contains(Email) && DateTime.Compare(email.UtcDateTime.Date, Convert.ToDateTime(config.AppSettings.Settings["ModificationDate"].Value)) > 0) 

在这里,我存储/保存在app.config文件的日期时间。

System.Configuration.Configuration config = 
      ConfigurationManager.OpenExeConfiguration 
         (ConfigurationUserLevel.None); 

// Add an Application Setting. 
config.AppSettings.Settings.Add("ModificationDate", DateTime.Now + " "); 

// Save the changes in App.config file. 
config.Save(ConfigurationSaveMode.Modified); 

// Force a reload of a changed section. 
ConfigurationManager.RefreshSection("appSettings"); 

Console.WriteLine("Last Update :"+config.AppSettings.Settings["ModificationDate"].Value); 
Console.ReadLine(); 

请建议我为什么告诉我该对象未设置我做过任何错误,请ANS错误...

+0

这不是暂时的,你可以继续。但这不是处理您的要求的正确方法 – nawfal 2012-07-19 12:40:47

回答

1

您可以创建一个设置xml文件来执行此操作。

在VS去你的项目属性 - >Settings,然后写一个值

在代码中,你可以获取/设置使用

Properties.Settings.Default.YourVariable = 0; 

如果要设置的值使该值一定要保存它

Properties.Settings.Default.Save(); 

请参阅here一个很好的教程。

-1

你可以使用App.config存储像任何其他文件,它会持续存在,可下一次你运行你的程序。一般来说,这就是文件存储的本质。我建议你将这些数据存储在一个单独的文件或数据库中。然而,我不会为你写代码。

0

我会使用自定义配置部分来创建您的配置类型 - 上次访问日期时间。您可以创建更复杂的层次配置并进行强类型化。

同样,它取决于您的要求和设计,如果你需要这样做。否则,标准文件存储(txt/xml)也可以让你这样做。我个人通常使用app.config为应用程序特定级别(外观/字体/服务器名等)配置,而不是事务配置。

为e.g

public class LastAccessConfigurationSection : System.Configuration.ConfigurationSection { 
    [ConfigurationProperty("LastAccess")] 
    public string LastAccess{ 
     get { return (string)this["LaunchTime"]; } 
     set { this["LaunchTime"] = value; } 
    } 
} 

你可以有一个静态类管理的生命周期,它会让你坚持的变化。

public static LastAccessConfigurationSection Config { get; internal set; } 

    public static void Initialize() { 
     Config = ConfigurationManager.GetSection("LastAccess") as LastAccessConfigurationSection; 
    }