C# 区分machine.config和web.config中的连接字符串
使用C#,是否有办法区分machine.config和web.config中的连接字符串?我希望迭代web.config中的集合,而不是machine.config中的集合C# 区分machine.config和web.config中的连接字符串,c#,asp.net,connection-string,C#,Asp.net,Connection String,使用C#,是否有办法区分machine.config和web.config中的连接字符串?我希望迭代web.config中的集合,而不是machine.config中的集合 ASP.NET 3.5,C#Web.Config中的每个配置也可以放在machine.Config中。 您可以认为Machine.Config是基类,Web.Config是子类 因此,如果覆盖Web.Config中的任何设置,基本上就是覆盖机器配置设置(或要求应用程序使用Web.Config设置) 因此,我认为如果您在Web
ASP.NET 3.5,C#Web.Config中的每个配置也可以放在machine.Config中。 您可以认为Machine.Config是基类,Web.Config是子类 因此,如果覆盖Web.Config中的任何设置,基本上就是覆盖机器配置设置(或要求应用程序使用Web.Config设置) 因此,我认为如果您在Web.Config中编写连接,那么当您循环连接字符串时,就可以从您的应用程序开始
ConfigurationManager.ConnectionStrings
您将只能访问在web.config中编写的连接字符串
请尝试web.config connectionstring部分中的
。因此,我认为这将清除Machine.config连接字符串。您尝试过吗
Configuration c = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/");
请尝试下面的代码或发出linq查询,以查找两种配置的互补性(差异)。如果索引0处的连接字符串来自计算机配置,则以下yeilds为true,同时比较索引0处的连接字符串,否则将产生false:
System.Configuration.ConfigurationManager.ConnectionStrings[0].Equals
(System.Configuration.ConfigurationManager.OpenMachineConfiguration()
.ConnectionStrings.ConnectionStrings[0])
从MSDN中,还可以查看System.Web.Configuration命名空间
对于localweb.config中的get first ConnectionString,请使用它:
var ms = System.Configuration.ConfigurationManager.OpenMachineConfiguration();
if (ConfigurationManager.ConnectionStrings.Count > ms.ConnectionStrings.ConnectionStrings.Count)
return ConfigurationManager.ConnectionStrings[ms.ConnectionStrings.ConnectionStrings.Count].ConnectionString;
嗯。什么?第一句话讲得通,但其余的话讲不通。如果我的理解有误,请纠正。这是我已经在尝试的。ConfigurationManager.ConnectionString集合包含来自web.config和machine.config的连接字符串。我尝试了此操作,但仅从machine.config获取连接字符串。不完全是我想要的,但它似乎是可行的。我喜欢LINQ的想法。我还没有实现这一点,但我相信它会起作用。谢谢
var ms = System.Configuration.ConfigurationManager.OpenMachineConfiguration();
if (ConfigurationManager.ConnectionStrings.Count > ms.ConnectionStrings.ConnectionStrings.Count)
return ConfigurationManager.ConnectionStrings[ms.ConnectionStrings.ConnectionStrings.Count].ConnectionString;