我已就此进行了大量研究,并尝试了多种方法,但我开始认为我想做的事情无法完成。即 - 我正在构建一个将由多个客户端使用的应用程序。每个客户端都有自己的数据库连接要求,以及它们自己的一组自定义,以控制应用程序的某些行为。
我想要做的是为每个客户端创建一个.config文件,然后使用命令行参数指定要加载的.config文件。每个配置文件都有自己的部分,也有自己的部分。我已经完成了大部分文档,包括ConfigurationManager和Configuration类,并尝试了许多不同的方法,所有方法都失败了。
基本问题是"当我打开.config文件时,如何告诉应用程序将此.config作为默认配置?"例如,当我稍后引用appSettings中的值或数据库连接字符串时,如何确保每个引用都映射到我已加载的自定义配置,而不是Visual Studio默认创建的引用? / p>
我找到了各种对加载配置文件的引用,但没有任何内容告诉我如何用我刚加载的那个动态替换标准文件。我一直以零引用异常结束并一直运行到砖墙中。
答案 0 :(得分:0)
您可以在配置文件中定义多个连接字符串,然后按名称引用它们。 例如:
<configuration>
<connectionStrings>
<add name="client1Connection"
connectionString="Data Source=(local);Initial Catalog=dbclient1;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="client2connection"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=dbclient2;Integrated Security=True"
providerName="System.Data.SqlClient" />
...
</connectionStrings>
</configuration>
您可以通过以下方式在c#代码中引用它们:
string client1ConnStr = System.Configuration.ConfigurationManager.ConnectionStrings["client1Connection"].ConnectionString;
string client2ConnStr = System.Configuration.ConfigurationManager.ConnectionStrings["client2connection"].ConnectionString;