Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “修改应用程序设置”;文件";运行时的属性_C#_.net_Wpf_App Config_Configurationmanager - Fatal编程技术网

C# “修改应用程序设置”;文件";运行时的属性

C# “修改应用程序设置”;文件";运行时的属性,c#,.net,wpf,app-config,configurationmanager,C#,.net,Wpf,App Config,Configurationmanager,我目前正在尝试设置appSettings配置的“file”属性,并在运行时引用XML包含的设置。我无法在编译之前执行此操作,因为XML设置文件将根据本地计算机设置进行更改 但是,在进行上述更改后,temp变量仅包含“密码”项,无法检索包含的文件路径中的其他设置。我知道正在设置文件属性,但由于某些原因,引用的设置仍然隐藏。application.settings.xml文件如下所示 string appConfPath = Directory.GetParent(Environme

我目前正在尝试设置appSettings配置的“file”属性,并在运行时引用XML包含的设置。我无法在编译之前执行此操作,因为XML设置文件将根据本地计算机设置进行更改

但是,在进行上述更改后,temp变量仅包含“密码”项,无法检索包含的文件路径中的其他设置。我知道正在设置文件属性,但由于某些原因,引用的设置仍然隐藏。application.settings.xml文件如下所示

        string appConfPath = Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName;
        string fullPath = appConfPath + "\\Local\\RandFolder\\ThisOne\\application.settings.xml";
        var config =       ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);


        config.AppSettings.File = fullPath;
        config.AppSettings.Settings.Add("Password", "djydyjdjtdtyjddj");
        config.Save(ConfigurationSaveMode.Modified);
        ConfigurationManager.RefreshSection("appSettings");
        var temp = config.AppSettings;


非常感谢您的帮助

我不会试图批评你正在做的事情,但会为你提供一个简单的解释


ConfigurationManager.RefreshSection
刷新
静态配置管理器使用的
配置
实例中的节。它不会影响通过调用OpenExeConfiguration创建的
配置
实例;要实现这一点,您需要再次调用
OpenExeConfiguration

那么为什么不使用用户设置呢?如果文件将根据用户进行更改,我认为app.settings不是放置此文件位置的正确位置。它应该是用户配置文件的一部分(如果您将用户存储在某处)
<?xml version="1.0" encoding="utf-8"?>
<appSettings>
  <add key="ServerLocation" />
  <add key="PerforceURI" value="yuhsgbyluvgblsg" />
</appSettings>