是否可以在运行时添加自定义配置元素。
这是我的app.config文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="NodeList"
type="Configuration.NodeListSection, NodeListConfiguration"
requirePermission="false" />
</configSections>
<NodeList>
<nodes>
<add name="Dev1" isdefault="false" description ="Dev server" />
<add name="QA1" isdefault="true" description="QA server"/>
<add name="Prod1" isdefault="false" description="Production" />
</nodes>
</NodeList>
</configuration>
我们可以使用C#代码在运行时添加更多节点。
答案 0 :(得分:2)
这似乎不是来自内置配置部分。您会发现“NodesList”是自定义编写的部分/元素。要确定代码库中的位置,请在configSections
元素的配置文件顶部查找“NodesList”。这将指导你在课堂上进行研究。
之后,您需要该类正确支持写操作。
要了解有关自定义配置文件的更多信息,请参阅该主题great series at CodeProject。特别是Saving Configuration Changes部分应该对您有所帮助。
修改(在更多信息添加到问题后):
尝试类似的东西(当然这一切都取决于NodeListSection代码库中的内容):
using Configuration;
var nodeListSection = ConfigurationManager.GetSection("NodeList") as Configuration.NodeListSection;
var newNode = new NodeElement() { Name = "xyz", IsDefault = false, Description = "New Guy" };
nodeListSection.Nodes.Add(newNode);
Configuration.Save(ConfigurationSaveMode.Modified);
答案 1 :(得分:0)
您发布的文件看起来不像普通的.NET配置文件,而是自定义XML文件。
在任何一种情况下 - .config
文件只是XML文件 - 您可以使用BCL中的任何XML库打开,操作和保存它们,例如XDocument
。
但是,如果要在运行时更改配置,则需要确定应用程序是否应在运行时应用这些更改以及此代码,因为通常只会在启动时读取配置文件。 / p>
答案 2 :(得分:0)
private void AddNewKey_Config(string key, string value, string fileName)
{
var configFile = ConfigurationManager.OpenExeConfiguration(fileName);
configFile.AppSettings.Settings.Add(key, value);
configFile.Save();
}