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使用默认构造函数一样。