如何通过C#代码更新C#3.5 app.config文件或Settings.settings文件?
请提供与C#3.5框架支持类相关的代码,但在更新app.config文件时请不要使用2.0框架类。
答案 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类中。
答案 1 :(得分:0)
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");
请写出主要方法,对我有用。