C#配置管理器。 的ConnectionStrings

我有一个控制台应用程序,其中包含一个包含一个连接字符串的应用程序配置文件

     

当我使用以下内容将其传递给我的Connection时:

 ConfigurationManager.ConnectionStrings[1].ToString() 

我有两个值,因此在集合中使用第二个,我的问题是第二个来自哪里?

我检查了\ Bin版本和原版,它不是我的! 它显然是一个系统生成的,但我以前没见过这个? 任何人都可以开导我吗?

神秘的连接字符串是:

 data source=.\SQLEXPRESS; Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf; User Instance=true 

这不是问题,我只想知道为什么会这样? 提前致谢!

为了将来参考那些可能或可能没有偶然发现的人,在发现machine.config ,很明显通过索引引用配置是不好的做法,因为每个堆栈可能会有所不同,这就是“密钥”的原因。使用。

在这个例子中,我的代码是:

 ConfigurationManager.ConnectionStrings["Target"].ToString() 

干得好!

检查你的machine.config 。 如果您只想要输入,可以在元素中添加元素,如下所示…

     

检查你的machine.config(在WindowsDir \ Framework下)。 我只是检查了我的,我有同样的事情。

它在machine.config文件中定义,它对机器上的所有.Net应用程序都是全局的。

连接字符串通过配置层次结构“堆叠”,这就是为什么您自己的连接字符串的元素名称被标记为“添加”。 您正在将自己的连接字符串添加到计算机级连接字符串列表中。

最好使用:

 ConfigurationManager.ConnectionStrings["Target"].ConnectionString 

确保您获得自己的连接字符串,即使修改了machine.config。

存储连接字符串标记中的索引第一个元素默认情况下,它表示> MemberShip数据库连接字符串。

在您的应用程序中使用CLR的考虑因素,以便CLR代表您附加它默认情况下。

就像没有构造函数的类创建中的CLR使用默认构造函数一样。