通过编程方式在app.config文件中添加代理设置
本文关键字:文件 添加 代理 设置 config app 编程 方式 | 更新日期: 2023-09-27 18:10:07
我有一个像这样的app.config文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appsettings>
<add key="ServiceName" value="MyService1" />
<add key="URL" value="https://mydomain.com/test/main.asmx" />
...
</appsettings>
</configuration>
=================================================================
现在我需要从应用程序中做的是,我需要在一些特殊的UI事件上将代理设置添加到配置文件中。
所以,app.config文件看起来像这样——<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appsettings>
<add key="ServiceName" value="MyService1" />
<add key="URL" value="https://mydomain.com/test/main.asmx" />
...
</appsettings>
<system.net>
<defaultproxy>
<proxy scriptlocation ="https://mysecuredomain.com/conf/proxy.pac" />
</defaultproxy>
</system.net>
</configuration>
感谢您的帮助。
谢谢
App。配置可以像这样编程修改:
如果你想添加新的密钥,那么使用这个:
private void ModifyConfig(string key, string value)
{
// Open App.Config of executable
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// Add an Application Setting.
config.AppSettings.Settings.Add(key, value);
// Save the configuration file.
config.Save(ConfigurationSaveMode.Modified, true);
// Force a reload of a changed section.
ConfigurationManager.RefreshSection("appSettings");
}
如果你想更新现有的键,那么使用这个:
private void UpdateConfig(string key, string value)
{
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings[key].Value = value;
config.Save(ConfigurationSaveMode.Modified, true);
ConfigurationManager.RefreshSection("appSettings");
}
其他部分可以用类似的方式修改。
我找到了一个很好的链接,它将指导你如何更新自定义部分。
在运行时更新App.config中的AppSettings和自定义配置部分
据我所知,您需要能够动态更改'scriptlocation'值。
在原始(项目源代码版本)的中,您使用令牌代替实际的脚本位置url地址。例如:
代替:<proxy scriptlocation ="https://mysecuredomain.com/conf/proxy.pac" />
你应该使用:<proxy scriptlocation ="[ScriptLocationProxy]" />
其中[ScriptLocationProxy]是一个令牌,稍后会被实际更改。在您的部署脚本中,查找这个令牌并替换它们(简单的字符串替换)。
希望有所帮助