WinForm中的配置文件app.Config

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;
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值