首页 > 编程语言 >C# 配置文件相关方法

C# 配置文件相关方法

时间:2024-09-03 10:05:16浏览次数:8  
标签:Console string 配置文件 C# 方法 键值 WriteLine config

`using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Reflection;
class Program
{
static void Main()
{
// 获取应用程序的根目录路径
string appDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string configFilePath = Path.Combine(appDirectory, "reg.config");

    // 调用方法来创建配置文件
    CreateConfigFile(configFilePath);

    // 键值对字典
    Dictionary<string, string> keyValuePairs = new Dictionary<string, string>
    {
        { "key1", "zwNo3bHIOs94h8Gnw0qFoZ6GqX4W0/6AN6soH1gjOjQ=" },
        { "key2", "another_value" },
        { "key3", "yet_another_value" }
    };

    // 写入多个键值对
    WriteKeyValuePairs(configFilePath, keyValuePairs);

    // 更新其中一个键值对
    UpdateKeyValuePair(configFilePath, "key2", "new_value_for_key2");
}

// 创建配置文件
static void CreateConfigFile(string filePath)
{
    if (!File.Exists(filePath))
    {
        // 创建一个新的配置文件
        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        config.SaveAs(filePath);
        Console.WriteLine("配置文件已创建: " + filePath);
    }
    else
    {
        Console.WriteLine("配置文件已存在.");
    }
}

// 写入多个键值对
static void WriteKeyValuePairs(string filePath, Dictionary<string, string> keyValuePairs)
{
    try
    {
        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        foreach (var pair in keyValuePairs)
        {
            if (config.AppSettings.Settings[pair.Key] == null)
            {
                config.AppSettings.Settings.Add(pair.Key, pair.Value);
            }
            else
            {
                config.AppSettings.Settings[pair.Key].Value = pair.Value;
            }
        }
        config.Save();
        Console.WriteLine("键值对已写入.");
    }
    catch (Exception ex)
    {
        Console.WriteLine("写入键值对时出错: " + ex.Message);
    }
}

// 更新键值对
static void UpdateKeyValuePair(string filePath, string key, string newValue)
{
    try
    {
        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        if (config.AppSettings.Settings[key] != null)
        {
            config.AppSettings.Settings[key].Value = newValue;
            config.Save();
            Console.WriteLine("键值对已更新: " + key + " = " + newValue);
        }
        else
        {
            Console.WriteLine("键不存在,无法更新.");
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine("更新键值对时出错: " + ex.Message);
    }
}

}`

标签:Console,string,配置文件,C#,方法,键值,WriteLine,config
From: https://www.cnblogs.com/gyl0812/p/18393987

相关文章

  • 通过对elements混入的方式设置一些公共方法
    importVuefrom'vue'importElementfrom'element-ui'importi18nfrom'@/lang'//import'../element-variables.scss'import{closeMenuOnScroll}from'@/mixin/close-menu-onscroll.js'importmessagefro......
  • 【VMware VCF】VCF 5.2:配置管理域 vSAN 延伸集群。
    VMwarevSAN解决方案中,根据集群的配置类型分为vSAN标准集群、vSAN延伸集群以及双主机集群(延伸集群特例)。我们最常见的使用方式应该是vSAN标准集群,也就是vSANHCI超融合集群,至少由3台ESXi主机所组成,这些ESXi主机安装位属于同一个数据中内,将本地磁盘聚合后提供给工作......
  • k8s核心组件etcd备份与恢复
    etcd在k8s集群中的身份以及重要性介绍在Kubernetes(K8s)集群中,etcd扮演着至关重要的角色,它是集群状态存储的核心组件。以下是etcd在K8s集群中的角色、作用及其重要性的详细说明:角色:etcd是K8s集群的“大脑”,存储和管理了整个集群的状态信息。重要性:etcd是K8s集群中不可或缺......
  • 开机出现invalid partition table原因分析及解决方法
         最近有网友问我为什么电脑开机每次出现invalidpartitiontable,这个提示意思是:无效的分区表。原因有很多,比如我们采用的是uefi引导,而第一启动的硬盘是MBR分区,比如我们采用的是legacy引导模式,而第一启动项的硬盘为gpt分区等,下面我们来详细分析一下每次开机提示inva......
  • Postman完美平替!免费开源、轻量级、快速且美观的 API 调试工具Hoppscotch
    Hoppscotch:开源API的智能伙伴,让开发更简单、更高效。 - 精选真开源,释放新价值。概览Hoppscotch是一个开源的API开发工具,它为开发者提供了一个全面而直观的平台来构建、测试和监控API。作为一个开源项目,它具有高度的可定制性和灵活性,允许用户根据自己的需求进行调整。Hoppscotc......
  • 使用W外链创建微信短链接的方法
    一般来说,使用W外链创建微信外链可以按照以下步骤进行:一、注册与登录W外链平台打开W外链平台的官方网站。注册一个账号,通常需要提供手机号、用户名、密码等信息。注册成功后,使用用户名和密码登录到平台。二、生成短链接将你想要转换为微信外链的原始长链接准备好。这......
  • 两句话讲清楚离线安装docker镜像
    两句话讲清楚离线安装docker镜像文章目录两句话讲清楚离线安装docker镜像写在前面解决方案写在前面背景:银河麒麟、离线环境,装吧,一装一个不吱声。准备:首先,你要有个docker,安装好了才能搞镜像是不是,参考我的上一篇:两句话讲清楚离线安装docker其次,你要能访问hu......
  • 修改Exchange用户每分钟/每天的发送邮件数量的默认值MessageRateLimit和RecipientRate
    1分钟内连续多封邮件发送失败了,导致大量邮件堵塞。经查,报有下面的错误:4214.4.2Messagesubmissionrateforthisclienthasexceededtheconfiguredlimit这是因为从Exchange2010开始,默认每分钟发送的邮件封数限制为5封,这个限制参数是:MessageRateLimit  微软官网有给出此......
  • 惠海H6900B 12V升压24V 60V 5V升压12V芯片 DC-DC LED恒流驱动IC 300W大功率
    H6900B是一款高效率、稳定可靠的升压型LED恒流驱动芯片,适用于多个高亮度LED灯串的恒流驱动。以下是关于该产品的详细解析:产品特征:内置耐压60V功率NMOS,可直接处理60V电压,无需额外升压电路。输入电压范围2.7V-48V,兼容多种电源类型。效率高达95%以上,降低能耗,延长电池寿命。工作频率1MH......
  • 工业图像输出卡设计原理图:FMC214-基于FMC兼容1.8V IO的Full Camera Link 输出子卡
    FMC214-基于FMC兼容1.8VIO的FullCameraLink输出子卡  一、板卡概述 基于FMC兼容1.8V IO的Full Camera Link 输出子卡支持Base、Middle、Full Camera link信号输出,兼容1.8V、2.5V、3.3V IO FPGA信号输出。适配xilinx不同型号开发板和公司内部各......