1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lunarsf-Lunar-Markdown-Editor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
XmlConfigManager.cs 3.7 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
LunarSF Отправлено 9 лет назад ab5a981
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace LunarSF.SHomeWorkshop.LunarMarkdownEditor
{
/// <summary>
/// 用于管理 Xml 配置文件。
/// </summary>
public class XmlConfigManager
{
private string fileName;
/// <summary>
/// 配置文件的完整路径。
/// </summary>
public string FileName
{
get { return this.fileName; }
set { this.fileName = value; }
}
private XmlDocument xmlDocument;
/// <summary>
/// 打开配置文件(xml)。
/// </summary>
/// <returns>文件存在并打开,返回true;文件不存在并创建,返回false。</returns>
public bool Open()
{
try
{
xmlDocument.Load(fileName);
}
catch (Exception)
{
//如果文件不存在,就创建一个新文件。
XmlTextWriter xmlWriter = new XmlTextWriter(fileName, System.Text.Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");
xmlWriter.WriteStartElement("Root");
//如果像上面这样使用WriteProcessingInstruction,
//这里就不使用WriteEndElement()
//xmlWriter.WriteEndElement();
//这会导致<Root></Root>变成<Root />
xmlWriter.Close();
xmlDocument.Load(fileName);
return false;
}
return true;
}
/// <summary>
/// [构造方法]创建一个 Xml 配置文件管理器。
/// </summary>
/// <param name="fileName">Xml 配置文件的完整路径。</param>
public XmlConfigManager(string fileName)
{
this.fileName = fileName;
xmlDocument = new XmlDocument();
this.Open();
}
///// <summary>
///// 难得看到的析构函数。
///// </summary>
//~XmlConfigManager()
//{
// Save();
//}
/// <summary>
/// 保存 Xml 配置文件。
/// </summary>
public void Save()
{
xmlDocument.Save(fileName);
}
/// <summary>
/// 根据配置项的名称取配置项的值。如果不存在,返回null。
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public string Get(string name)
{
XmlNode node = xmlDocument.SelectSingleNode("Root").SelectSingleNode(name);
if (node == null)
{
return null;
}
else
{
return node.InnerText;
}
}
/// <summary>
/// 根据指定的配置项的名称设置该项的值。如果不存在这个名称的配置项,就新增一个。
/// </summary>
/// <param name="name">配置项的名称。</param>
/// <param name="value">配置项的值。</param>
public void Set(string name, string value)
{
XmlNode root = xmlDocument.SelectSingleNode("Root");
XmlNode node = root.SelectSingleNode(name);
if (node != null)
{
node.InnerText = value;
}
else
{
XmlElement element = xmlDocument.CreateElement(name);
element.InnerText = value;
root.AppendChild(element);
}
Save();
}
}
}

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/lunarsf-Lunar-Markdown-Editor.git
git@gitlife.ru:oschina-mirror/lunarsf-Lunar-Markdown-Editor.git
oschina-mirror
lunarsf-Lunar-Markdown-Editor
lunarsf-Lunar-Markdown-Editor
v0.4-beta8