通过编程方式在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.config文件中添加代理设置

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]是一个令牌,稍后会被实际更改。在您的部署脚本中,查找这个令牌并替换它们(简单的字符串替换)。

希望有所帮助