我有两个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和connectiontrings检索到表单B.
此外,我应该能够修改这些appsettings和连接字符串,并将其保存到表单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);
但是刚刚被击中,我只是不知道如何继续前进(声音愚蠢吧!)
任何人都可以帮我继续前进。
此致 cmrhema
答案 0 :(得分:2)
基本上,您需要打开其他可执行文件的配置,如下所示:
// 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():
答案 1 :(得分:1)
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 强>