using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Xml;
|
using CY.Infrastructure.Logging;
|
|
namespace CY.Config
|
{
|
/// <summary>
|
/// 获取配置基类
|
/// </summary>
|
public abstract class BaseConfig
|
{
|
protected static object lockHelper = new object();
|
|
protected BaseConfig()
|
{
|
this.Init();
|
}
|
|
/// <summary>
|
/// 获取配置的某个节点的值
|
/// </summary>
|
/// <param name="xml"></param>
|
/// <param name="nodeName"></param>
|
/// <returns></returns>
|
protected string GetNodeValue(XmlDocument xml, string nodeName)
|
{
|
XmlNodeList elementsByTagName = xml.GetElementsByTagName(nodeName);
|
if (elementsByTagName.Count > 0)
|
{
|
return elementsByTagName[0].InnerText.Trim();
|
}
|
return "";
|
}
|
|
/// <summary>
|
/// 获取配置的某个节点的值
|
/// </summary>
|
/// <param name="xml"></param>
|
/// <param name="nodeName"></param>
|
/// <returns></returns>
|
protected string GetNodeValue(XmlElement xml, string nodeName)
|
{
|
XmlNodeList elementsByTagName = xml.GetElementsByTagName(nodeName);
|
if (elementsByTagName.Count > 0)
|
{
|
return elementsByTagName[0].InnerText.Trim();
|
}
|
return "";
|
}
|
|
/// <summary>
|
/// 加载配置文件,并实例化相应的对象
|
/// </summary>
|
protected abstract void Init();
|
|
/// <summary>
|
/// 刷新
|
/// </summary>
|
public void Refresh()
|
{
|
this.Init();
|
}
|
|
/// <summary>
|
/// 设置配置的某个节点的值
|
/// </summary>
|
/// <param name="xml"></param>
|
/// <param name="nodeName"></param>
|
/// <param name="value"></param>
|
protected void SetNodeValue(XmlDocument xml, string nodeName, bool value)
|
{
|
XmlNodeList elementsByTagName = xml.GetElementsByTagName(nodeName);
|
if (elementsByTagName.Count > 0)
|
{
|
elementsByTagName[0].InnerText = value.ToString();
|
}
|
}
|
/// <summary>
|
/// 设置配置的某个节点的值
|
/// </summary>
|
/// <param name="xml"></param>
|
/// <param name="nodeName"></param>
|
/// <param name="value"></param>
|
protected void SetNodeValue(XmlDocument xml, string nodeName, decimal value)
|
{
|
XmlNodeList elementsByTagName = xml.GetElementsByTagName(nodeName);
|
if (elementsByTagName.Count > 0)
|
{
|
elementsByTagName[0].InnerText = value.ToString();
|
}
|
}
|
/// <summary>
|
/// 设置配置的某个节点的值
|
/// </summary>
|
/// <param name="xml"></param>
|
/// <param name="nodeName"></param>
|
/// <param name="value"></param>
|
protected void SetNodeValue(XmlDocument xml, string nodeName, int value)
|
{
|
XmlNodeList elementsByTagName = xml.GetElementsByTagName(nodeName);
|
if (elementsByTagName.Count > 0)
|
{
|
elementsByTagName[0].InnerText = value.ToString();
|
}
|
}
|
/// <summary>
|
/// 设置配置的某个节点的值
|
/// </summary>
|
/// <param name="xml"></param>
|
/// <param name="nodeName"></param>
|
/// <param name="value"></param>
|
protected void SetNodeValue(XmlDocument xml, string nodeName, float value)
|
{
|
XmlNodeList elementsByTagName = xml.GetElementsByTagName(nodeName);
|
if (elementsByTagName.Count > 0)
|
{
|
elementsByTagName[0].InnerText = value.ToString();
|
}
|
}
|
/// <summary>
|
/// 设置配置的某个节点的值
|
/// </summary>
|
/// <param name="xml"></param>
|
/// <param name="nodeName"></param>
|
/// <param name="value"></param>
|
protected void SetNodeValue(XmlDocument xml, string nodeName, string value)
|
{
|
XmlNodeList elementsByTagName = xml.GetElementsByTagName(nodeName);
|
if (elementsByTagName.Count > 0)
|
{
|
elementsByTagName[0].InnerText = value;
|
}
|
}
|
/// <summary>
|
/// 设置配置的某个节点的值
|
/// </summary>
|
/// <param name="xml"></param>
|
/// <param name="nodeName"></param>
|
/// <param name="value"></param>
|
protected void SetNodeValue(XmlElement xml, string nodeName, string value)
|
{
|
XmlNodeList elementsByTagName = xml.GetElementsByTagName(nodeName);
|
if (elementsByTagName.Count > 0)
|
{
|
elementsByTagName[0].InnerText = value;
|
}
|
}
|
/// <summary>
|
/// 更新配置
|
/// </summary>
|
/// <returns></returns>
|
public abstract bool Update();
|
|
/// <summary>
|
/// 记录错误日志
|
/// </summary>
|
/// <param name="ex"></param>
|
protected void WirteLog(Exception ex)
|
{
|
LoggingFactory.GetLogger().Log(ex);
|
}
|
}
|
}
|