C# 如何将connectionString从一个配置文件附加到另一个配置文件

C# 如何将connectionString从一个配置文件附加到另一个配置文件,c#,C#,我正在尝试将连接字符串从C:\test2\web.config复制到C:\test1\app.config。在web.config中,connectionString元素如下所示。这两个配置文件不属于我的项目。 ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); fileMap.ExeConfigFilename = @"c:\test1\app.config"; Configuration config = C

我正在尝试将连接字符串从C:\test2\web.config复制到C:\test1\app.config。在web.config中,connectionString元素如下所示。这两个配置文件不属于我的项目。

 ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();

fileMap.ExeConfigFilename = @"c:\test1\app.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");

ExeConfigurationFileMap fileMapWeb = new ExeConfigurationFileMap();
fileMapWeb.ExeConfigFilename = @"C:\test2\web.config";
Configuration configWeb = ConfigurationManager.OpenMappedExeConfiguration(fileMapWeb, ConfigurationUserLevel.None);

var connectionStringsWeb = (ConnectionStringsSection)configWeb.GetSection("connectionStrings");

//here I got connectionString element in connectionStringsWeb from web.config file. But how to append this connectionString element to app.config file.  

提前感谢。

您可以通过代码访问配置文件

 ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();

fileMap.ExeConfigFilename = @"c:\test1\app.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");

ExeConfigurationFileMap fileMapWeb = new ExeConfigurationFileMap();
fileMapWeb.ExeConfigFilename = @"C:\test2\web.config";
Configuration configWeb = ConfigurationManager.OpenMappedExeConfiguration(fileMapWeb, ConfigurationUserLevel.None);

var connectionStringsWeb = (ConnectionStringsSection)configWeb.GetSection("connectionStrings");

//here I got connectionString element in connectionStringsWeb from web.config file. But how to append this connectionString element to app.config file.  
msdn示例

 ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();

fileMap.ExeConfigFilename = @"c:\test1\app.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");

ExeConfigurationFileMap fileMapWeb = new ExeConfigurationFileMap();
fileMapWeb.ExeConfigFilename = @"C:\test2\web.config";
Configuration configWeb = ConfigurationManager.OpenMappedExeConfiguration(fileMapWeb, ConfigurationUserLevel.None);

var connectionStringsWeb = (ConnectionStringsSection)configWeb.GetSection("connectionStrings");

//here I got connectionString element in connectionStringsWeb from web.config file. But how to append this connectionString element to app.config file.  
// Add a connection string to the connection
// strings section and store it in the
// configuration file.
static void AddConnectionStrings()
{

    // Get the count of the connection strings.
    int connStrCnt = 
        ConfigurationManager.ConnectionStrings.Count;

    // Define the string name.
    string csName = "ConnStr" + 
        connStrCnt.ToString();

    // Get the configuration file.
    System.Configuration.Configuration config =
        ConfigurationManager.OpenExeConfiguration(
        ConfigurationUserLevel.None);

    // Add the connection string.
    ConnectionStringsSection csSection =
        config.ConnectionStrings;
    csSection.ConnectionStrings.Add(
        new ConnectionStringSettings(csName,
            "LocalSqlServer: data source=127.0.0.1;Integrated Security=SSPI;" +
            "Initial Catalog=aspnetdb", "System.Data.SqlClient"));

    // Save the configuration file.
    config.Save(ConfigurationSaveMode.Modified);

    Console.WriteLine("Connection string added.");

}

来源:

您也可以使用FileReader或XML reader。只是一个想法。
 ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();

fileMap.ExeConfigFilename = @"c:\test1\app.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");

ExeConfigurationFileMap fileMapWeb = new ExeConfigurationFileMap();
fileMapWeb.ExeConfigFilename = @"C:\test2\web.config";
Configuration configWeb = ConfigurationManager.OpenMappedExeConfiguration(fileMapWeb, ConfigurationUserLevel.None);

var connectionStringsWeb = (ConnectionStringsSection)configWeb.GetSection("connectionStrings");

//here I got connectionString element in connectionStringsWeb from web.config file. But how to append this connectionString element to app.config file.