您的位置:首页 > 移动开发

WinForm中的配置文件app.Config

2013-02-05 11:42 330 查看
WinForm中的配置文件app.Config

1、和Asp.net的Web.config不同,创建winform应用时并不会默认的创建app.config。

2、如果你选定项目-添加新项-应用程序配置文件,不更改默认的App.config名称,那么你得到一个符合要求的最小的App.config文件。注意,若你生成该项目,bin目录下面会出现一个复制了App.config内容的名字为应用程序名.exe.config的配置文件。

3、如果你添加的应用程序配置文件名字不是App.config,那么不会在bin目录下面生成xxx.exe.config文件。

4、如果你设置窗体的某些属性为动态属性,App.config的内容和xxx.exe.config的内容会同步的改变。

在WinForm中,可以通过添加配置文件(如App.config)来为程序简易地设置一些参数,但为了自己指定配置文件的位置,就不用VS添加了,写两个方法读取和修改指定文件。

public class AppSettings

{

public static string AppConfig()

{

return System.IO.Path.Combine(Application.StartupPath, "App.config");//此处配置文件在程序目录下

}

public static string GetValue(string appKey)

{

XmlDocument xDoc = new XmlDocument();

try

{

xDoc.Load(AppSettings.AppConfig());

XmlNode xNode;

XmlElement xElem;

xNode = xDoc.SelectSingleNode("//appSettings");

xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']");

if (xElem != null)

return xElem.GetAttribute("value");

else

return "";

}

catch (Exception)

{

return "";

}

}

public static void SetValue(string AppKey, string AppValue)

{

XmlDocument xDoc = new XmlDocument();

xDoc.Load(AppSettings.AppConfig());

XmlNode xNode;

XmlElement xElem1;

XmlElement xElem2;

xNode = xDoc.SelectSingleNode("//appSettings");

xElem1 = (XmlElement)xNode.SelectSingleNode("//add[@key='" + AppKey + "']");

if (xElem1 != null)

{

xElem1.SetAttribute("value", AppValue);

}

else

{

xElem2 = xDoc.CreateElement("add");

xElem2.SetAttribute("key", AppKey);

xElem2.SetAttribute("value", AppValue);

xNode.AppendChild(xElem2);

}

xDoc.Save(AppSettings.AppConfig());

}

}

/// <summary>

///

/// </summary>

/// <returns></returns>

public static XmlNode GetAddressValues()

{

XmlDocument xDoc = new XmlDocument();

xDoc.Load(AppConfig());

XmlNode xNode;

xNode = xDoc.SelectSingleNode("//MainForm-comboBoxWeb");

return xNode;

}

public static void SetAddressValue(string AppValue)

{

XmlDocument xDoc = new XmlDocument();

xDoc.Load(AppConfig());

XmlNode element;

element = xDoc.SelectSingleNode("//MainForm-comboBoxWeb");

XmlNode node = xDoc.CreateNode(XmlNodeType.Element, "Item", "");

node.InnerText = AppValue;

element.AppendChild(node);

xDoc.Save(AppConfig());

}

public static void UpdateConfig(string p_strKey, string p_strValue)

{

try

{

string m_strFullPath = "";

// Assembly Asm = Assembly.GetExecutingAssembly();

XmlDocument xmlDoc =new XmlDocument();

m_strFullPath = System.Windows.Forms.Application.ExecutablePath + ".config";

xmlDoc.Load(m_strFullPath);

XmlNodeList nodeList=xmlDoc.SelectSingleNode("/configuration/appSettings").ChildNodes;

foreach(XmlNode xn in nodeList)

{

XmlElement xe=(XmlElement)xn;

if( xe.GetAttribute("key").IndexOf(p_strKey) != -1 )

{

xe.SetAttribute("value",p_strValue);

}

}

xmlDoc.Save(m_strFullPath);

}

catch(System.NullReferenceException NullEx)

{

throw NullEx;

}

catch(Exception ex)

{

throw ex;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: