前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WPF配置文件读写

WPF配置文件读写

作者头像
码客说
发布2021-07-19 16:00:43
9330
发布2021-07-19 16:00:43
举报
文章被收录于专栏:码客码客

XML配置

项目配置

代码语言:javascript
复制
/// <summary>
/// 读取设置
/// </summary>
/// <param name="settingName"></param>
/// <returns></returns>
public static string GetSettingString(string settingName)
{
    try
    {
        string settingString = ConfigurationManager.AppSettings[settingName].ToString();
        return settingString;
    }
    catch (Exception)
    {
        return null;
    }
}

/// <summary>
/// 更新设置
/// </summary>
/// <param name="settingName"></param>
/// <param name="valueName"></param>
public static void UpdateSettingString(string settingName, string valueName)
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

    if (ConfigurationManager.AppSettings[settingName] != null)
    {
        config.AppSettings.Settings.Remove(settingName);
    }
    config.AppSettings.Settings.Add(settingName, valueName);
    config.Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection("appSettings");
}

自定义配置

代码语言:javascript
复制
using System;
using System.Configuration;
using System.IO;

namespace SchoolClient.Utils
{
    public static class ZConfigUtil
    {
        ///<summary>
        ///返回app.config文件中appSettings配置节的value项
        ///</summary>
        ///<param name="strKey"></param>
        ///<returns></returns>
        public static string GetVaule(string strKey)
        {
            return GetVaule(strKey, "app.config");
        }

        public static string GetVaule(string strKey, string filepath)
        {
            ExeConfigurationFileMap file = new ExeConfigurationFileMap();
            file.ExeConfigFilename = filepath;
            Configuration config = ConfigurationManager.OpenMappedExeConfiguration(file, ConfigurationUserLevel.None);
            foreach (string key in config.AppSettings.Settings.AllKeys)
            {
                if (key == strKey)
                {
                    return config.AppSettings.Settings[strKey].Value.ToString();
                }
            }
            return null;
        }

        ///<summary>
        ///在app.config文件中appSettings配置节增加一对键值对
        ///</summary>
        ///<param name="newKey"></param>
        ///<param name="newValue"></param>
        public static void SetVaule(string newKey, string newValue)
        {
            SetVaule(newKey, newValue, "app.config");
        }

        public static void SetVaule(string newKey, string newValue, string filepath)
        {
            ExeConfigurationFileMap file = new ExeConfigurationFileMap();
            file.ExeConfigFilename = filepath;
            Configuration config = ConfigurationManager.OpenMappedExeConfiguration(file, ConfigurationUserLevel.None);
            bool exist = false;
            foreach (string key in config.AppSettings.Settings.AllKeys)
            {
                if (key == newKey)
                {
                    exist = true;
                }
            }
            if (exist)
            {
                config.AppSettings.Settings.Remove(newKey);
            }
            config.AppSettings.Settings.Add(newKey, newValue);
            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("appSettings");
        }

        public static void test()
        {
            SetVaule("ServerIp", "127.0.0.1");
            SetVaule("ServerPort", "8899");
            Console.WriteLine("ServerIp:" + ZConfigUtil.GetVaule("ServerIp"));
            Console.WriteLine("ServerXXX:" + (ZConfigUtil.GetVaule("ServerXXX") == null));
        }
    }
}

文本配置

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SchoolClient.Utils
{
    internal class ZSignatureUtil
    {
        /// <summary>
        /// 读取文件
        /// </summary>
        /// <param name="filepath"></param>
        /// <returns></returns>
        public static string GetVaule(string filepath)
        {
            if (File.Exists(filepath))
            {
                try
                {
                    return System.IO.File.ReadAllText(filepath, Encoding.Default);
                }
                catch (Exception e)
                {
                    return null;
                }
            }
            else
            {
                return null;
            }
        }

        /// <summary>
        /// 写入文件
        /// </summary>
        /// <param name="newValue"></param>
        /// <param name="filepath"></param>
        public static void SetVaule(string newValue, string filepath)
        {
            FileInfo fi = new FileInfo(filepath);
            DirectoryInfo di = fi.Directory;
            if (!di.Exists)
            {
                di.Create();
            }

            System.IO.File.WriteAllText(filepath, newValue, Encoding.Default);
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • XML配置
    • 项目配置
      • 自定义配置
      • 文本配置
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档