【问题标题】:How to write a blank line in a config file when adding an app key programatically in .NET?在.NET中以编程方式添加应用程序密钥时如何在配置文件中写入空行?
【发布时间】:2015-12-19 16:59:44
【问题描述】:

我正在使用如下代码以编程方式将应用密钥写入 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);

【问题讨论】:

    标签: c# xml app-config


    【解决方案1】:

    这是可能的,不幸的是这并不令人愉快。考虑以下内容,它确实添加了空格:

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

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 1970-01-01
      • 2013-08-05
      • 2020-01-15
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 2011-01-12
      相关资源
      最近更新 更多