将多个键/值对保存到 app.config

发布于 2025-01-12 17:28:45 字数 857 浏览 0 评论 0原文

我正在开发一个 winform 应用程序,我在 app.config 文件中存储一些设置(用户名、电子邮件、邮政编码)。

public static void Set(string key, string value)
    {

        var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

        var entry = config.AppSettings.Settings[key];
        if (entry == null)
            config.AppSettings.Settings.Add(key, value);
        else
            config.AppSettings.Settings[key].Value = value;

        config.Save(ConfigurationSaveMode.Modified);
    }

我想将设置保存到 app.config 文件中。所以我有这个代码。 问题是:我只能使用变量密钥一次......所以我无法保存电子邮件和邮政编码。 我正在考虑使用数组,但我不知道如何实现它。有什么建议吗?

private void button_savesettings_Click(object sender, EventArgs e)
    {
        string key = "username";
        string username = textBox_user.Text;

        Set(key, username);

        

    }

非常感谢!

I'm working on an winform application, where I store some setting (username, email, zipcode) in the app.config file.

public static void Set(string key, string value)
    {

        var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

        var entry = config.AppSettings.Settings[key];
        if (entry == null)
            config.AppSettings.Settings.Add(key, value);
        else
            config.AppSettings.Settings[key].Value = value;

        config.Save(ConfigurationSaveMode.Modified);
    }

I'd like to save the settings to the app.config file. So I have this code.
Problem is: I can only use the variable key once.... So i can't saven the email and zipcode.
I was thinking of working with an array, but I have no idea on how to implement this. Any suggestions?

private void button_savesettings_Click(object sender, EventArgs e)
    {
        string key = "username";
        string username = textBox_user.Text;

        Set(key, username);

        

    }

Many thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

长亭外,古道边 2025-01-19 17:28:45

一个简单的循环就可以解决这个问题

void SetAppSettingsValues(Dictionary<string, string> dict)
{
    // bit of validation
    if (dict == null || !dict.Any())
        return;

    var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

    foreach (var key in dict.Keys)
    {
        var configItem = config.AppSettings.Settings[key];

        if (configItem == null)
            config.AppSettings.Settings.Add(key, dict[key].Value);
        else
            config.AppSettings.Settings[key].Value = dict[key].Value;
    }

    config.Save(ConfigurationSaveMode.Modified);
}

A simple loop will solve the problem

void SetAppSettingsValues(Dictionary<string, string> dict)
{
    // bit of validation
    if (dict == null || !dict.Any())
        return;

    var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

    foreach (var key in dict.Keys)
    {
        var configItem = config.AppSettings.Settings[key];

        if (configItem == null)
            config.AppSettings.Settings.Add(key, dict[key].Value);
        else
            config.AppSettings.Settings[key].Value = dict[key].Value;
    }

    config.Save(ConfigurationSaveMode.Modified);
}
木落 2025-01-19 17:28:45

更好的方法是使用 SQLite for Winform。
当您的数据变量变大时,将内容保存到 app.config 可能会很混乱。

The better way is to use SQLite for Winform.
Saving things to app.config could be messy when your data variable grows bigger.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文