/************************************
版权所有:SkylineSoft版权所有(C)
创建日期:2011-03-31
作 者:天涯居士
电子邮件:Jiangwzh@163.com
系统名称:SkylineSoft.GenericConfiguration
模块名称:通用配置文件访问
内容摘要:简华配置文件方问
***********************************/
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
namespace SkylineSoft
{
public class GenericConfiguration
{
private Configuration Config { get; set; }
private GenericConfiguration(Configuration config)
{
this.Config = config;
}
/// <summary>
/// 打开配置文件
///
/// 当前应用程序默认配置文件
/// </summary>
/// <returns></returns>
public static GenericConfiguration Open()
{
return Open(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
}
/// <summary>
/// 打开配置文件
/// </summary>
/// <param name="fileName">配置文件名</param>
/// <returns></returns>
public static GenericConfiguration Open(string fileName)
{
ExeConfigurationFileMap file = new ExeConfigurationFileMap();
file.ExeConfigFilename = fileName;
return new GenericConfiguration( ConfigurationManager.OpenMappedExeConfiguration(file, ConfigurationUserLevel.None));
}
/// <summary>
/// 获取数据库连接设置
/// </summary>
/// <param name="key">键名</param>
/// <returns></returns>
public ConnectionStringSettings GetConnectionStringSetting(string key)
{
return this.Config.ConnectionStrings.ConnectionStrings[key];
}
/// <summary>
/// 更新数据连接设置
/// </summary>
/// <param name="key">键名</param>
/// <param name="connString">连接字符串</param>
public void UpdateConnectionStringSetting(string key, string connString)
{
if (this.Config.ConnectionStrings.ConnectionStrings[key] == null)
this.Config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings(key, connString));
else
this.Config.ConnectionStrings.ConnectionStrings[key].ConnectionString = connString;
}
/// <summary>
/// 删除数据库连接设置
/// </summary>
/// <param name="key">键名</param>
public void RemoveConnectionStringSetting(string key)
{
if (this.Config.ConnectionStrings.ConnectionStrings[key] != null)
this.Config.ConnectionStrings.ConnectionStrings.Remove(key);
}
/// <summary>
/// 判断AppSettings中指定的键是否存在
/// </summary>
/// <param name="key">键名</param>
/// <returns></returns>
public bool AppSettingExisted(string key)
{
return this.Config.AppSettings.Settings[key] != null;
}
/// <summary>
/// 获取AppSettings
///
/// 返回String类型
/// </summary>
/// <param name="key">键名</param>
/// <returns></returns>
public string GetAppSettingString( string key)
{
if (this.Config.AppSettings.Settings[key] != null && !string.IsNullOrEmpty(Config.AppSettings.Settings[key].Value))
return Config.AppSettings.Settings[key].Value;
return string.Empty;
}
/// <summary>
/// 获取AppSettings
///
/// 返回Boolean类型
/// </summary>
/// <param name="key">键名</param>
/// <returns></returns>
public bool GetAppSettingBoolean(string key)
{
if (this.Config.AppSettings.Settings[key] != null)
{
string value = Config.AppSettings.Settings[key].Value;
if (!string.IsNullOrEmpty(value))
return BooleanUtil.ConvertFrom(value);
}
return false;
}
/// <summary>
/// 获取AppSettings
/// </summary>
/// <typeparam name="T">值类型</typeparam>
/// <param name="config">配置对象</param>
/// <param name="key">键名</param>
/// <returns></returns>
public T GetAppSettings<T>( string key)
{
if (this.Config.AppSettings.Settings[key] != null )
{
string value = Config.AppSettings.Settings[key].Value;
if (!string.IsNullOrEmpty(value))
return (T)Convert.ChangeType(value, typeof(T));
}
return ReflectionUtil.GetTypeDefaultValue<T>();
}
/// <summary>
/// 更新AppSettings
/// </summary>
/// <param name="key">键名</param>
/// <param name="value">值</param>
public void UpdateAppSettings(string key, string value)
{
if (AppSettingExisted(key))
this.Config.AppSettings.Settings[key].Value = value;
else
this.Config.AppSettings.Settings.Add(key,value);
}
/// <summary>
/// 更新AppSettings
/// </summary>
/// <param name="key">键名</param>
/// <param name="value">值</param>
public void UpdateAppSettings(string key, object value)
{
if (AppSettingExisted(key))
this.Config.AppSettings.Settings[key].Value = value==null?string.Empty:value.ToString();
else
this.Config.AppSettings.Settings.Add(key, value == null ? string.Empty : value.ToString());
}
/// <summary>
/// 删除Appsettings中指定的键
/// </summary>
/// <param name="key"></param>
public void RemoveAppSettings(string key)
{
if (AppSettingExisted(key))
this.Config.AppSettings.Settings.Remove(key);
}
/// <summary>
/// 获取配置节
/// </summary>
/// <typeparam name="T">配置节类型</typeparam>
/// <param name="config">配置对象</param>
/// <param name="sectionName">节名</param>
/// <returns></returns>
public T GetSection<T>(string sectionName) where T : ConfigurationSection
{
T section = null;
try
{
section = this.Config.GetSection(sectionName) as T;
}
catch { }
return section;
}
/// <summary>
/// 保存配置
/// </summary>
public void Save()
{
if(this.Config!=null)
this.Config.Save();
}
/// <summary>
/// 保存配置
/// </summary>
/// <param name="mode">保存方式</param>
public void Save(ConfigurationSaveMode mode)
{
if (this.Config != null)
this.Config.Save(mode);
}
/// <summary>
/// 另存配置
/// </summary>
/// <param name="fileName">文件名</param>
public void SaveAs(string fileName)
{
if (this.Config != null)
this.Config.SaveAs(fileName);
}
/// <summary>
/// 另存配置
/// </summary>
/// <param name="fileName">文件名</param>
/// <param name="mode">保存方式</param>
public void SaveAs(string fileName, ConfigurationSaveMode mode)
{
if (this.Config != null)
this.Config.SaveAs(fileName, mode);
}
}
}
C#访问配置文件
最新推荐文章于 2024-01-12 10:23:27 发布