在运行时修改 appSettings "file" 属性
Modifying appSettings "file" attribute at runtime
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;
我目前正在尝试设置我的 appSettings 配置的 "file" 属性,并在运行时引用 XML 的包含设置。我无法在编译前执行此操作,因为 XML 设置文件将根据本地计算机设置进行更改。
但是,进行上述更改后,temp 变量仅包含 "Password" 项,无法检索包含文件路径中的其他设置。我知道正在设置文件属性,但由于某种原因,引用的设置仍处于隐藏状态。 application.settings.xml 文件看起来像这样...
<?xml version="1.0" encoding="utf-8"?>
<appSettings>
<add key="ServerLocation" />
<add key="PerforceURI" value="yuhsgbyluvgblsg" />
</appSettings>
非常感谢任何帮助!
我不会试图批评你的所作所为,而是对你所看到的进行简单的解释。
ConfigurationManager.RefreshSection
刷新 static ConfigurationManager
使用的 Configuration
实例中的部分。它不会影响您通过调用 OpenExeConfiguration
创建的 Configuration
实例;为此,您需要再次致电 OpenExeConfiguration
。
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;
我目前正在尝试设置我的 appSettings 配置的 "file" 属性,并在运行时引用 XML 的包含设置。我无法在编译前执行此操作,因为 XML 设置文件将根据本地计算机设置进行更改。
但是,进行上述更改后,temp 变量仅包含 "Password" 项,无法检索包含文件路径中的其他设置。我知道正在设置文件属性,但由于某种原因,引用的设置仍处于隐藏状态。 application.settings.xml 文件看起来像这样...
<?xml version="1.0" encoding="utf-8"?>
<appSettings>
<add key="ServerLocation" />
<add key="PerforceURI" value="yuhsgbyluvgblsg" />
</appSettings>
非常感谢任何帮助!
我不会试图批评你的所作所为,而是对你所看到的进行简单的解释。
ConfigurationManager.RefreshSection
刷新 static ConfigurationManager
使用的 Configuration
实例中的部分。它不会影响您通过调用 OpenExeConfiguration
创建的 Configuration
实例;为此,您需要再次致电 OpenExeConfiguration
。