我正在使用下面的代码以编程方式编写App.Config文件的应用程序密钥,但我还想在写入/保存密钥后在App.Config文件中添加一个空白行以便于阅读。这可能吗?如果是这样,怎么样?我找不到答案。
System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Add(appKey, appKeyValue);
// Save the changes in App.config file.
config.Save(ConfigurationSaveMode.Modified);
答案 0 :(得分:0)
有可能,不幸的是,这并不令人愉快。请考虑以下内容,它确实添加了空格:
var doc = new XmlDocument();
doc.Load(@"app.config");
doc.PreserveWhitespace = true;
var first = doc.DocumentElement.FirstChild;
doc.DocumentElement.InsertBefore(doc.CreateSignificantWhitespace("\r\n\r\n"), first);
var settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineChars = "\r\n";
using (var writer = XmlWriter.Create(@"app.config", settings))
{
doc.Save(writer);
}
遗憾的是,在添加的重要空白节点之后忽略了XmlWriterSettings.Indent
设置,并将所有节点放在一行上。我认为这可能是一个错误,或者重要的空白正在选择“全有或全无”格式,然后您必须控制文档的完整格式。
但是,如果您接受评论节点,则效果会更好:
var doc = new XmlDocument();
doc.Load(@"app.config");
doc.PreserveWhitespace = true;
var first = doc.DocumentElement.FirstChild;
doc.DocumentElement.InsertBefore(doc.CreateComment(""), first);
var settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineChars = "\r\n";
using (var writer = XmlWriter.Create(@"app.config", settings))
{
doc.Save(writer);
}