【问题标题】:How to obtain app.config of a different application and modify it如何获取不同应用的app.config并修改
【发布时间】:2010-02-15 17:17:50
【问题描述】:

我有两个 Windows 应用程序。例如,FormA 和 FormB

FormA的app.config如下

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <appSettings>

    <add key="company" value="DSRC"/>

    </appSettings>

<connectionStrings>

<add name="test" connectionString="Testing Connection String"/>

</connectionStrings>

</configuration>

现在我有另一个名为 Form B 的应用程序。

我想将表单 A 的 appsettings 和连接字符串都检索到表单 B 中。

此外,我应该能够同时修改这些 appsettings 和连接字符串并将其保存到 Form A 中。

我知道如何检索同一个应用程序的 appsettings 和连接字符串并进行修改。

但是我如何获取其他一些应用程序并对其进行修改。

请告诉我。

实际上,我有 4 个 Windows 服务在一个设置下运行。一个 web 服务和一个 wcf 服务和一个应用程序。 所有这些都有不同的 app.configs,由不同的 appsettings 和不同的连接字符串组成。 我应该创建一个 Windows 应用程序来检索这些设置中的每一个,然后相应地保存它。

我试过达到这个水平

ExeConfigurationFileMap filename= new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = @"D:\Home\FormA\FormA\bin\Debug\FormA.exe.config";


Configuration config =
   ConfigurationManager.OpenMappedExeConfiguration(filename,
   ConfigurationUserLevel.None);

然后就被击中了,我只是不知道如何继续前进(听起来很愚蠢!)

谁能帮我继续下去。

问候 乳晕

【问题讨论】:

    标签: c# asp.net-3.5


    【解决方案1】:

    基本上,您需要打开其他可执行文件的配置,如下所示:

    // full path to other EXE, including EXE extension - but *NOT* .config !!
    string otherExePath = @"C:\........\OtherApp\bin\Debug\OtherApp.exe";
    Configuration otherConfig = 
                  ConfigurationManager.OpenExeConfiguration(otherExePath);
    

    然后您可以访问新otherConfig 配置上的所有设置:

    string otherSetting = otherConfig.AppSettings.Settings["TestSetting1"].Value;
    

    您也可以将其保存回来(前提是您对该目录具有必要的权限)。

    otherConfig.Save():
    

    【讨论】:

    • 这不会从另一个应用程序获取用户设置
    【解决方案2】:
                ExeConfigurationFileMap fileMap2 
                    = new ExeConfigurationFileMap();
                fileMap2.ExeConfigFilename = @"OtherFile";
    
                Configuration config2 =
                  ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
    
                ConnectionStringSettings newSettings = 
                    config.ConnectionStrings.ConnectionStrings["oldSConString"];
    
                ConnectionStringsSection csSection 
                    = config2.ConnectionStrings;
    
                csSection.ConnectionStrings.Add(newSettings);                
                config2.Save(ConfigurationSaveMode.Modified);
    

    VS2005 C# Programmatically change connection string contained in app.config

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      • 2012-12-06
      • 2015-08-18
      • 2013-12-06
      • 1970-01-01
      相关资源
      最近更新 更多