保存到XML文件无法保存 - WPF

时间:2017-06-15 20:40:21

标签: c# xml wpf app-config

当我保存到我的XML文件时,所有正确的值都被输入,我的代码似乎运行顺畅,正确的 App.config值保存到正确的应用程序.config key ,但是当我去保存到我的XML文件时,它不起作用。

我的代码在这里

App.config中:

<<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="Test" value="Entry"/>
<add key="Directory" value="WYNW"/>
</appSettings>
<*More stuff*>

我以前称之为保存

private void btnDirectory_Click(object sender, RoutedEventArgs e)
{
    string oldDirectory = btnDirectory.Content.ToString();
    string newDirectory = grabFolder();  //Grab Folder just grabs the folder location as a string
    if (!(string.IsNullOrWhiteSpace(newDirectory)))
    {
        btnDirectory.Content = newDirectory;
        changeValue(KeyValue[1], oldDirectory, newDirectory); //KeyValue[1] is "Directory"
    }
}

我以前保存到XML的内容

public void changeValue(string Key_Value, string Old_Value, string New_Value)
{
    MessageBoxResult result = MessageBox.Show("Change " + Old_Value + " to " + New_Value + " for " + Key_Value, "Sales Vault Notifer", MessageBoxButton.YesNo);
    switch (result)
    {
        case MessageBoxResult.Yes:
            {
                XmlDocument XMLdoc = new XmlDocument();
                XMLdoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
                foreach (XmlElement element in XMLdoc.DocumentElement)
                {
                    if (element.Name == "appSettings")
                    {
                        foreach (XmlNode node in element.ChildNodes)
                        {
                            if (node.Attributes[0].Value == Key_Value)
                            {
                                node.Attributes[1].Value = New_Value;
                                MessageBox.Show(node.Attributes[1].Value); //Check to make sure that correct key-value has been changed ... It shows that it changes to what directory I want
                            }
                        }
                    }
                }
                XMLdoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
                break;
            }
    }
}

一切顺利,直到我到达XMLdoc.Save()部分。我在C#应用程序中使用了这个代码并且它工作顺利但是当我切换到WPF时,MessageBoxes的Yes / No部分是不同的并且需要(从我能找到的)切换到check,所以我假设 break ; 是我无法保存的原因。

任何帮助都将非常感谢:)

干杯, 亚托

1 个答案:

答案 0 :(得分:0)

经过反复试验,我得出的结论是:

文档正在保存,只是保存到

// MyProject / bin / debugg / MyProject.exe.config

而不是我手动编辑

的配置文件

// MyProject / App.config

slugster

解释here

因此,当我在Visual Studio中打开我的App.config文件时,没有进行任何更改,但是当我从配置文件中读取时,

using System.Configuration;
var Variable = ConfigurationManager.AppSettings.Get("Directory");

已经进行了正确的更改。

希望这可以帮助那些遇到同样问题的人:)