代码之家  ›  专栏  ›  技术社区  ›  Pop Catalin

如何在运行时将键值对存储在应用程序设置中?

  •  4
  • Pop Catalin  · 技术社区  · 16 年前

    如何在运行时使用应用程序设置API将对象的动态键值对存储在app.config中?

    我一直在努力改变主意,找不到任何有意义的例子或文档。

    我觉得.NET字典类不能用XML序列化来存储在app.config中。

    唯一的方法是使用自定义XML序列化类,还是有其他方法?

    5 回复  |  直到 11 年前
        1
  •  2
  •   Nick    16 年前

    你应该可以这样做:

    // Open App.Config of executable
    System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    
    // Add an Application Setting with a name Key and a Value stored in variable called Value
    config.AppSettings.Settings.Add("Key", Value );
    
    // Save the changes in App.config file.
    config.Save(ConfigurationSaveMode.Modified);
    
        2
  •  2
  •   Pop Catalin    16 年前

    在更多的搜索网络之后,我发现了一篇非常好(尽管很长)的文章,它在dept.net配置模型中进行了描述:

    Unraveling the Mysteries of .NET 2.0 Configuration

    我还发现了一些非常有用的东西:

    Configuration Section Designer

    一个Visual Studio添加,用于可视化地设计配置节并生成相应的XSD文件。我希望有人能发现这个有用。

        3
  •  1
  •   AdamBT    16 年前

    一直认为在运行时更改app.config被认为是不好的做法。app.config应用于程序设置和配置,而不是应用程序实际修改的动态内容。

    建议为动态对象创建单独的“keyvalue.xml”文件。

        4
  •  0
  •   OregonGhost    16 年前

    根据具体需要,您可以尝试System.Collections.ObjectModel.KeyedCollection<Tkey,Tvalue>。只有当您可以从项本身派生项的键时,这才有效,但在这种情况下,这样做是可以的。

        5
  •  0
  •   steve_c    16 年前

    它是通用字典吗?如果是这样:

    XML Serializable Generic Dictionary