【问题标题】:C# app.config read and writeC# app.config 读写
【发布时间】:2013-04-06 21:53:33
【问题描述】:

我们可以在 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();

请告诉我为什么它会显示一个错误,即对象未设置我做错了什么请回答...

【问题讨论】:

  • 这不是临时的,你可以继续。但这不是处理您的要求的正确方法

标签: c# persistence app-config


【解决方案1】:

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

在 VS 中转到您的项目属性 -> Settings,然后在其中写入一个值。

在代码中,您可以使用

获取/设置该值
Properties.Settings.Default.YourVariable = 0;

如果您要设置该值,请确保保存它

Properties.Settings.Default.Save();

请参阅here 以获得良好的教程。

【讨论】:

    【解决方案2】:

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

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

    例如

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

    【讨论】:

      【解决方案3】:

      您可以像使用任何其他文件一样使用App.config 进行存储,它将持续存在并在您下次运行程序时可用。这就是文件存储的本质。我建议您将该数据存储在单独的文件或数据库中。但是,我不会为您编写代码。

      【讨论】:

        猜你喜欢
        • 2013-05-10
        • 1970-01-01
        • 2012-12-02
        • 1970-01-01
        • 2022-10-05
        • 2016-01-11
        • 2010-10-26
        • 2015-08-11
        • 2017-06-23
        相关资源
        最近更新 更多