/// <summary> /// Загрузить конфиг-файл. /// </summary> internal static void LoadXmlConfig() { string fileName = DefaultProgramFullFileName; bool create = false; if (File.Exists(fileName)) { try { localParams.Load(fileName); } catch (Exception) { create = true; } } if (create) { localParams = new ConfigXmlDocument(); XmlDeclaration declaration = localParams.CreateXmlDeclaration("1.0", "utf-8", "yes"); localParams.AppendChild(declaration); XmlNode root = localParams.CreateElement(ProgramConfiguraton.trainerRootNodeName); localParams.AppendChild(root); } }
/// <summary> /// Update RunTimeData appSettings sections /// Add a new key /// </summary> /// <param name="key"></param> /// <param name="value"></param> public static void AddKeyAppSettings(string key, string value) { //Update custom configuration sections - Add a new key ConfigXmlDocument xmlDoc = new ConfigXmlDocument(); //var projectDir = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.FullName; //var fileDir = projectDir + @"\AcceptanceTests\DataFiles\"; //var xmlDir = fileDir + "RunTimeData.xml"; //Replace with get xmlDir Method() xmlDoc.Load(xmlDir); // create new node <add key="New Key" value="New Key Value1" /> var node = xmlDoc.CreateElement("add"); //node.SetAttribute("key", "New Key"); //node.SetAttribute("value", "New Key Value1"); node.SetAttribute("key", key); node.SetAttribute("value", value); xmlDoc.SelectSingleNode("//appSettings").AppendChild(node); //xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); xmlDoc.Save(xmlDir); ConfigurationManager.RefreshSection("//appSettings"); }
/// <summary> /// プロパティを保存する処理 /// </summary> private void SaveProperties() { try { FileInfo fi = new System.IO.FileInfo(GetLocalConfigFilePath()); if (fi.Exists != true) { if (fi.Directory.Exists != true) { fi.Directory.Create(); } } ConfigXmlDocument cdoc = new ConfigXmlDocument(); var cfg = cdoc.CreateElement("configuration"); var apps = cdoc.CreateElement("settings"); Func <string, string, bool> addItem = (key, val) => { var node = cdoc.CreateElement("add"); var attrK = cdoc.CreateAttribute("key"); attrK.InnerText = key; var attrV = cdoc.CreateAttribute("value"); attrV.InnerText = string.IsNullOrWhiteSpace(val) ? string.Empty : val; node.Attributes.Append(attrK); node.Attributes.Append(attrV); apps.AppendChild(node); return(true); }; addItem("LoginCheck", this.ライセンス情報記憶.ToString()); addItem("TextUr", Utility.Encrypt(this.ユーザーID)); addItem("TextLr", Utility.Encrypt(this.パスワード)); cdoc.AppendChild(cfg); cfg.AppendChild(apps); cdoc.Save(fi.FullName); } catch (Exception) { } finally { } }
/// <summary> /// 创建默认的配置文件 /// </summary> private static void CreateDefaultConfigFile() { // 创建文件,写入默认值 XmlDocument xmlDoc = new ConfigXmlDocument(); // 根节点添加默认参数集 XmlElement elemParams = xmlDoc.CreateElement(RootNodeName); elemParams.AppendChild(xmlDoc.CreateSingleElement(@"PhotoCacheDir", DefaultConfig.PhotoCacheDir)); // 本地照片缓存路径 elemParams.AppendChild(xmlDoc.CreateSingleElement(@"ServerPhotoDir", DefaultConfig.ServerPhotoDir)); // 服务器照片存储路径 elemParams.AppendChild(xmlDoc.CreateSingleElement(@"ThumbSize", DefaultConfig.ThumbSize)); // 照片缩略图尺寸 elemParams.AppendChild(xmlDoc.CreateSingleElement(@"LargeSize", DefaultConfig.LargeSize)); // 照片大图尺寸 elemParams.AppendChild(xmlDoc.CreateSingleElement(@"ThumbShowSize", DefaultConfig.ThumbShowSize)); // 照片缩略图展示尺寸 xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration(@"1.0", @"gb2312", null)); xmlDoc.AppendChild(elemParams); xmlDoc.Save(ConfigFilePath); }
/// <summary> /// Сохранить свободный параметр формы. /// </summary> /// <param name="form">Форма, которой принадлежит этот параметр.</param> /// <param name="paramName">Имя параметра.</param> /// <param name="paramValue">Значение параметра в виде строки.</param> internal static void SaveFormCustomParameter(Form form, string paramName, string paramValue) { // Форма не нуль, имя формы не нуль, имя параметра не нуль. if (!string.IsNullOrEmpty(paramName) && form != null && !string.IsNullOrEmpty(form.Name)) { // Корневой элемент конфигурации программы. XmlNode root = localParams[ProgramConfiguraton.trainerRootNodeName]; if (root == null) { // Создаем корень, если его нет. root = localParams.CreateElement(ProgramConfiguraton.trainerRootNodeName); localParams.AppendChild(root); } // Элемент формы. XmlNode formNode = root[form.Name]; if (formNode == null) { // Создаем его, если нет. formNode = localParams.CreateElement(form.Name); root.AppendChild(formNode); } // Элемент параметра. XmlNode formParamValue = formNode[paramName]; if (formParamValue == null) { // Создаем его, если нет. formParamValue = localParams.CreateElement(paramName); formNode.AppendChild(formParamValue); } // Сохраняем значение параметра. formParamValue.InnerText = paramValue; } }
private static void AppendConfig(ConfigXmlDocument configDocument, ConfigurationUserLevel userLevel) { var c = ConfigurationManager.OpenExeConfiguration(userLevel); if (c.HasFile) { if (configDocument.DocumentElement == null) { configDocument.Load(c.FilePath); } else { var other = new ConfigXmlDocument(); other.Load(c.FilePath); { XmlElement usg = null; string usgChildren = null; foreach (XmlElement s in other.SelectNodes("/configuration/configSections/sectionGroup[@name=\"userSettings\"]/section")) { if (usg == null) { usg = (XmlElement)configDocument.SelectSingleNode("/configuration/configSections/sectionGroup[@name=\"userSettings\"]"); if (usg == null) { var cs = configDocument.DocumentElement.GetOrPrepend("configSections"); usg = configDocument.CreateElement("sectionGroup"); foreach (XmlAttribute attr in s.ParentNode.Attributes) { usg.SetAttribute(attr.LocalName, attr.NamespaceURI, attr.Value); } usg.InnerXml = s.ParentNode.InnerXml; cs.AppendChild(usg); break; } usgChildren = usg.InnerXml; } usgChildren += s.OuterXml; } if (usgChildren != null) { usg.InnerXml = usgChildren; } } { XmlElement us = null; foreach (XmlElement se in other.SelectNodes("/configuration/userSettings/*/setting")) { if (us == null) { us = configDocument.DocumentElement.GetOrAppend("userSettings"); } var secName = se.ParentNode.LocalName; var ps = us.GetOrAppend(secName); var name = se.GetAttribute("name"); var sete = ps.GetByNameOrAppend("setting", name, "name", name, "serializeAs", se.GetAttribute("serializeAs")); sete.InnerXml = se.InnerXml; } } } } }