如何使用C#3.5框架更新App.config?

时间:2011-04-14 13:41:26

标签: c# .net-3.5 c#-4.0

如何通过C#代码更新C#3.5 app.config文件或Settings.settings文件?

请提供与C#3.5框架支持类相关的代码,但在更新app.config文件时请不要使用2.0框架类。

5 个答案:

答案 0 :(得分:1)

我在一个项目中搞砸了这个问题,并根据情况决定只使用我自己的一个简单的xml配置文件。问题是app.config具有特定原因的应用程序级别和用户级别设置。其他人在这里提到的Code Project文章可以帮助你,但对我来说似乎有很多工作。

简单的方法,创建一个XML文件:

<?xml version="1.0" encoding="utf-8" ?>
<paths>
  <path name="pathtofile1">
    <fullpath>\\machine1\folder1\file.txt</fullpath>
  </path>
  <path name="pathtofile2">
    <fullpath>\\machine2\folder2\file2.txt</fullpath>
  </path>
</paths>

然后使用LINQ来获取节点:

XDocument doc = XDocument.Load(pathToXmlfile);

var filePath1 = from c in doc.Descendants("path")
                        where (string)c.Attribute("name") == "pathtofile1"
                        select (string)c.Element("fullpath").Value;

                string thePath = filePath1.First();

当然,您没有内置的输入,但这是一种简单,通用的方法,您可以在很多情况下使用,例如在dll类中。

现在您正在使用“常规”xml文件,您可以使用此处提到的技术来更新它。 exampleblog做得很好。

答案 1 :(得分:0)

这是一个xml文件,因此您可以使用linqxml打开文件

var appConfigPath = string.Format("{0}{1}.exe.config", Directory.GetCurrent(), Process.GetCurrentProcess().ProcessName);

var appConfig = XDocument.Parse(appConfigPath);

//have at it

答案 2 :(得分:0)

可能的解决方案:Changing App.config at Runtime

答案 3 :(得分:0)

请查看此代码:

你必须首先加载web.config:

System.Configuration.Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");

然后您可以像这样修改或添加它:

if (config.AppSettings.Settings["YourTag"] == null)
            {
                config.AppSettings.Settings.Add("YourTag", "yourValue");
            }
else
            {
                config.AppSettings.Settings["YourTag"].Value = "yourValue";
            }

答案 4 :(得分:-1)

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load("..\\App.config");

XmlNode node = xmlDoc.SelectSingleNode("configuration/capabilities/single/add");// pass xpath of node
//node.Attributes[1].Value = MethodBase.GetCurrentMethod().Name;
node.Attributes[1].Value = TestContext.CurrentContext.Test.MethodName;

xmlDoc.Save("..\\App.config");

请写出主要方法,对我有用。