首页 > 编程语言 >C# write value to config file and read from value, such as persistence

C# write value to config file and read from value, such as persistence

时间:2024-04-10 11:33:21浏览次数:23  
标签:ConfigurationManager C# cfg System value write static kvp

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Collections;

namespace ConsoleApp26
{
    internal class Program
    {
        static Dictionary<string, string> configDic = new Dictionary<string, string>();
        static void Main(string[] args)
        {
            InitConfigDic();
            FillConfigFile();
            ReadFromConfig();
            PrintConfigDic();
            Console.ReadLine();
        }

        private static void PrintConfigDic()
        {
            Console.WriteLine("In ConfigDic:");
            foreach(KeyValuePair<string,string> kvp in configDic)
            {
                Console.WriteLine($"Key:{kvp.Key},Value: {kvp.Value}");
            }
        }

        private static void ReadFromConfig()
        {
            Console.WriteLine("In ConfigurationManager.AppSettings:");
            foreach (KeyValuePair<string, string> kvp in configDic)
            {
                Console.WriteLine($"{kvp.Key},{ConfigurationManager.AppSettings[kvp.Key]}");
            }
        }

        private static void FillConfigFile()
        {
            foreach (KeyValuePair<string, string> kvp in configDic)
            {
                WriteToConfig(kvp.Key, kvp.Value);
            }
        }

        private static void InitConfigDic()
        {
            for (int i = 0; i < 10; i++)
            {
                configDic.Add($"Config{i + 1}", Guid.NewGuid().ToString());
            }
        }

        static void ListConfigurationFile()
        {
            var cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            Console.WriteLine($"ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) :" +
                $"{cfg.FilePath}");
            cfg = ConfigurationManager.OpenMachineConfiguration();
            Console.WriteLine($"ConfigurationManager.OpenMachineConfiguration():{cfg.FilePath}");
        }

        static void WriteToConfig(string cfgKey, string cfgValue)
        {
            var cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            
            //Necessary,this will remove old value,and insert new value,else it will append new value after old value
            cfg.AppSettings.Settings.Remove(cfgKey);
            cfg.AppSettings.Settings.Add(cfgKey, cfgValue);
            cfg.Save(ConfigurationSaveMode.Full);
            ConfigurationManager.RefreshSection("appSettings");
        }

        static string ReadFromConfig(string cfgKey)
        {
            string cfgValue = null;
            cfgValue = ConfigurationManager.AppSettings[cfgKey];
            return cfgValue;
        }
    }
}

 

 

标签:ConfigurationManager,C#,cfg,System,value,write,static,kvp
From: https://www.cnblogs.com/Fred1987/p/18125697

相关文章

  • LTM4644IY#PBF DC/DC电源模块
    LTM4644IY#PBF规格信息:制造商:AnalogDevicesInc.产品种类:开关稳压器RoHS:是安装风格:SMD/SMT封装/箱体:BGA-77输出电压:0.6Vto5.5V输出电流:4A输出端数量:4Output最大输入电压:14V拓扑结构:Buck最小输入电压:4V开关频率:1000kHz最小工作温度:-40......
  • 启动应用程序出现inetcomm.dll找不到问题解决
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个inetcomm.dll文件(挑选合适的版本文件)把它......
  • 数据分析工具——Excel超级透视表:Power Pivot
    01、什么是PowerPivot?数据透视表的英文叫做PivotTable,那PowerPivot又是什么东东?它们两个有什么区别呢?通过上一篇文章对Excel数据透视表PivotTable的介绍,大家应该对数据透视表有了基本的了解,这是Excel学习中的重中之重,也是我们学习PowerPivot的基础。如果还没有熟练掌......
  • spring security 6:放行某些请求-接口
    springboot3.1.10spring-boot-starter-security3.1.10springsecurityweb6.1.8--ben发布于博客园序章自定义了BeanSecurityFilterChain,在http.authorizeHttpRequests中放行了接口“/system/register”,还定义了session管理的invalidSessionStrategy。@Bean......
  • weblogic 后台弱密码上传war包getshell 漏洞复现
    漏洞描述OracleWebLogicServer是Oracle公司目前开发的JavaEE应用服务器,类似于tomcattomcat中存在后台上传war包getshell漏洞,同样weblogic服务也存在该漏洞,通常weblogic有以下特征默认端口为:7001特有的报错回显后台目录为/console/login/LoginForm.jsp后台默认密码......
  • el-table(V 2.15.14)在使用树结构表格并且设置align = 'center'后 树结构层级不明显问
    开发中遇到的小问题:如图所示三个层级区分并不明显,用户体验差解决方案:自定义CSS:首先取消此列的align="center"然后插入以下代码(此CSS为更改图示第二列的样式如果是其它列请自己获取样式名称)//标题居中::v-deepth.el-table_1_column_2.is-leaf.el-table__cell{t......
  • WebClient类 详细使用教程
    原文链接:https://blog.csdn.net/nutian/article/details/2913670   https://blog.csdn.net/m0_58015531/article/details/131322801WebClient类如果只想从特定的URI请求文件,则可以使用的最简单.NET基类就是System.Net.WebClient。这个类是非常高层的类,它主要用于执行带有一......
  • java switch 自定义表格的渲染和编辑示例
    目录正常使用表格自定义表格样式正常使用表格很简单,使用一次就知道了,不过多介绍。//创建JTable实例,使用默认的模型JTabletable=newJTable();//设置表格数据Object[][]data={ {1,"Apple",10.0}, {2,"Banana",5.0}, {3,"Orange",8.0}};Object[]col......
  • 红队C2(sliver)实战
    使用sliver已经有一年多,因为cs对linux有天生的不兼容,许多功能无法使用,所有笔者找了一款可以平替cs的红队C2。在经过长时间的使用sliver,决定写一篇关于sliver的文章。先附几张使用截图。0x1安装推荐使用Debian11+。有能力直接看官方文档,跳过本章。这是项目的官方地址https:/......
  • [Vue warn]: Do not use built-in or reserved HTML elements as component id: line
    [Vuewarn]:Donotusebuilt-inorreservedHTMLelementsascomponentid:line这个报错是Vue警告不要使用内置的或者保留的HTML元素作为组件的id。在Vue中,组件的id应该是唯一的,并且不应该与HTML元素的标签名相同。比如说,如果有一个组件定义如下:<template><......