C# 操作配置文件App.Config

在C#出现以前,应用程序通常都是采用ini或xml作为配置文件,但C#出现后,大部分程序员还是选择用可操作性强的.config应用程序配置文件的。所以,为了操作方便,通常需要写一个通用类。网上有很多这样的通用类,但我觉得我写的这个通用辅助类对于我来说很方便,看各人喜好喽。

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

namespace Schwann.CommLibrary
{
    
public class ConfigHelper
    {
        
/// <summary>
        
/// 根据键值获取配置文件
        
/// </summary>
        
/// <param name="key">键值</param>
        
/// <returns></returns>
        public static string GetConfig(string key)
        {
            
string val = string.Empty;
            
if (ConfigurationManager.AppSettings.AllKeys.Contains(key))
                val 
= ConfigurationManager.AppSettings[key];
            
return val;
        }

        
/// <summary>
        
/// 获取所有配置文件
        
/// </summary>
        
/// <returns></returns>
        public static Dictionary<stringstring> GetConfig()
        {
            Dictionary
<stringstring> dict = new Dictionary<stringstring>();
            
foreach (string key in ConfigurationManager.AppSettings.AllKeys)
                dict.Add(key, ConfigurationManager.AppSettings[key]);
            
return dict;
        }

        
/// <summary>
        
/// 根据键值获取配置文件
        
/// </summary>
        
/// <param name="key">键值</param>
        
/// <param name="defaultValue">默认值</param>
        
/// <returns></returns>
        public static string GetConfig(string key, string defaultValue)
        {
            
string val = defaultValue;
            
if (ConfigurationManager.AppSettings.AllKeys.Contains(key))
                val 
= ConfigurationManager.AppSettings[key];
            
if (val == null)
                val 
= defaultValue;
            
return val;
        }

        
/// <summary>
        
/// 写配置文件,如果节点不存在则自动创建
        
/// </summary>
        
/// <param name="key">键值</param>
        
/// <param name="value"></param>
        
/// <returns></returns>
        public static bool SetConfig(string key, string value)
        {
            
try
            {
                Configuration conf 
= ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                
if (!conf.AppSettings.Settings.AllKeys.Contains(key))
                    conf.AppSettings.Settings.Add(key, value);
                
else
                    conf.AppSettings.Settings[key].Value 
= value;
                conf.Save();
                
return true;
            }
            
catch { return false; }
        }

        
/// <summary>
        
/// 写配置文件(用键值创建),如果节点不存在则自动创建
        
/// </summary>
        
/// <param name="dict">键值集合</param>
        
/// <returns></returns>
        public static bool SetConfig(Dictionary<stringstring> dict)
        {
            
try
            {
                
if (dict == null || dict.Count == 0)
                    
return false;
                Configuration conf 
= ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                
foreach (string key in dict.Keys)
                {
                    
if (!conf.AppSettings.Settings.AllKeys.Contains(key))
                        conf.AppSettings.Settings.Add(key, dict[key]);
                    
else
                        conf.AppSettings.Settings[key].Value 
= dict[key];
                }
                conf.Save();
                
return true;
            }
            
catch { return false; }
        }
    }
}
 爱戴客 - 可穿戴设备第一门户
 网址:www.ideek.cn
 微博:www.weibo.com/ideek
 为可穿戴设备爱好者提供最新、最专业的可穿戴设备产品和资讯信息。
原文地址:https://www.cnblogs.com/schwann/p/1997302.html