以编程方式在app.config文件中添加代理设置

时间:2014-06-25 06:21:21

标签: c#

我有像这样的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>

我们将不胜感激。

由于

2 个答案:

答案 0 :(得分:1)

可以像这样以编程方式修改App.config:

如果您想添加新密钥,请使用:

    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");
}

其他部分可以用类似的方式修改。

我找到了一个很好的链接,它将指导您,如何更新自定义部分。

Update AppSettings and custom configuration sections in App.config at runtime

答案 1 :(得分:0)

据我了解,您需要能够动态更改“scriptlocation”值。

在您的原始(项目源代码版本)中,您有令牌而不是实际的脚本位置URL地址。例如:

而不是:<proxy scriptlocation ="https://mysecuredomain.com/conf/proxy.pac" />

您应该使用:<proxy scriptlocation ="[ScriptLocationProxy]" />

其中[ScriptLocationProxy]是稍后将以实际方式更改的标记。在部署脚本中,查找此标记并替换它们(简单的字符串替换)。

希望有所帮助