从子文件夹中的其他配置文件获取Connectionstring值,并将connectionstring添加到根app.config文件

时间:2015-03-29 17:39:36

标签: c# .net visual-studio visual-studio-2008

我正在使用一个Windows应用程序,其中包含位于多个文件夹中的配置文件(dev.configprod.configuat.config),例如dev,{{1} },prod。我希望根据特定文件夹中的特定条件获取特定配置文件值,例如uat,并且我想在根connectionstrings文件中添加相应的connectionstrings。然后我需要根据添加的连接字符串获取数据。任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:0)

可以轻松完成的工作是外化您的连接字符串(我们倾向于将它们放入App_Data\config,因为该文件夹受IIS保护并且尝试浏览时,将返回该文件夹中的任何内容。)

所以在 main web.config中,你会有这样的事情:

<connectionStrings configSource="App_Data\config\dev.config" />

然后你去测试,你只需将其改为

<connectionStrings configSource="App_Data\config\uat.config" />

在您的个人配置文件中,您只有一个部分:

dev.config

<connectionStrings>
   <add name="SomeName"
        connectionString="server=.;database=test;integrated Security=SSPI;"
        providerName="System.Data.SqlClient" />
   ......
</connectionStrings>

答案 1 :(得分:0)

您可以使用ExeConfigurationFileMap和ConfigurationManager.OpenMappedExeConfiguration()基于条件加载自定义配置文件。

ExeConfigurationFileMap configFileMap = ExeConfigurationFileMap("path/to/custom.config");
System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None)

当您拥有配置对象时,您可以选择所需的给定部分,例如connectionstrings

ConnectionStringsSection connectionStrings = config.ConnectionStrings;

然后,您可以根据所需的条件加载您想要的任何配置文件,并挑选出您喜欢的部分。

有关ConnectionStringsSection with a short example (MSDN)的更多信息。