c# - 如何在 C# .Net 应用程序中正确存储状态

标签 c# .net

我有一个对象列表,其中每个对象都有一个名为“enabled”的 bool 属性。我想记住这些对象在应用程序 session 中的状态。为此,我至少有 2 个选项,使用注册表或使用更多 .net 方法 app.config 文件。我更愿意做后者。

然而,虽然静态/编译时键/值分配是微不足道的,但将新键动态分配给 app.config 文件似乎很重要。您有如何执行此操作的示例吗?

我的问题是,如果您想避免注册表,在 .net 中存储对象列表属性的最佳方法是什么?

最佳答案

如果可能,我希望将您的状态保存到数据库或其他文件结构中。在运行时更改您的 app.config 通常不会完成。我希望将您的对象序列化为一个文件,并使用它来保持它的状态。

这将根据情况动态更改 app.config 或 web.config。

public void ChangeAppSettings(string applicationSettingsName, string newValue)
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

    KeyValueConfigurationElement element = config.AppSettings.Settings[applicationSettingsName];

    if (element != null)
    {
        element.Value = newValue;
    }
    else
    {
        config.AppSettings.Settings.Add(applicationSettingsName, newValue);
    }

    config.Save(ConfigurationSaveMode.Modified, true);

    ConfigurationManager.RefreshSection("appSettings");
}

关于c# - 如何在 C# .Net 应用程序中正确存储状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1509564/

相关文章:

c# - 从框架控件继承时,我应该调用基本构造函数吗?

c# - SQL 日期时间到 C# 字符串并返回到 SQL 日期时间

c# - Visual Studio 代码分析错误 CA 1006

c# - 在 Mono 中使用预编译的 .NET 程序集 DLL?

c# - 从路径中删除“..”和相关文件夹的最快方法?

c# - ASP.NET 2.0 从控件强制使用 SSL

c# - VSTO 插件表单关闭处理程序

c# - Access数据库在c#中选择多行

c# - Silverlight 5 和 dll

.net - MSBuild 无法解析 COM 引用。为什么?