Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我应该将类库的连接字符串放在哪里,以及如何访问它们?_C#_Connection String - Fatal编程技术网

C# 我应该将类库的连接字符串放在哪里,以及如何访问它们?

C# 我应该将类库的连接字符串放在哪里,以及如何访问它们?,c#,connection-string,C#,Connection String,我有一个4/5项目的解决方案 目前,我的域项目的连接字符串已硬编码在c#文件中 我想把它放在web.config之类的文件里。根据我在这里和其他地方读到的内容,我应该将这些连接字符串存储在调用应用程序的web配置中 如果是,我如何访问它 当我在类库中执行类似操作时: ConnectionStringSettingsCollection connectionStrings = connectionStringsSection.ConnectionStrings; 找不到类型或命名空间,是

我有一个4/5项目的解决方案

目前,我的域项目的连接字符串已硬编码在c#文件中

我想把它放在web.config之类的文件里。根据我在这里和其他地方读到的内容,我应该将这些连接字符串存储在调用应用程序的web配置中

如果是,我如何访问它

当我在类库中执行类似操作时:

ConnectionStringSettingsCollection connectionStrings =
    connectionStringsSection.ConnectionStrings;

找不到类型或命名空间,是否缺少引用或其他内容?

config
架构中存在连接字符串的现有架构

这在
元素下:

<connectionStrings>
  <add name="example" connectionString="..."/>
</connectionStrings>

在类库中定义主应用程序和访问

ConnectionString:使用System.Configuration添加; 添加参考:系统配置

ConfigurationManager.ConnectionStrings["key"]
交替的

System.Configuration.ConfigurationSettings.AppSettings["key"])

您需要在主项目中添加对的引用

然后你可以像这样访问连接字符串

System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;//<- last bit for a string version of the full connection string

System.Configuration.ConfigurationManager.ConnectionString[“MyConnectionString”].ConnectionString// 在代码中使用这个

String sqlDbConn = 
        ConfigurationManager.ConnectionStrings["ApplicationServices"].ToString();
该名称还应在您的web配置中定义

<connectionStrings>
 <add name="ApplicationServices"
       connectionString="You database information"
      />

 </connectionStrings>


并增加了使用系统配置;命名空间

由于某些奇怪的原因(Microsoft,您知道),默认情况下未引用所需的程序集。您必须手动将对
系统.Configuration
程序集的引用添加到需要使用它的每个项目中。ConfigurationManager是一个不错的选择,我现在还记得另外两个选择:注册表和二进制文件(使用二进制格式化程序),请选中此项:@AmenAyach-因为OP专门询问了
web.config
,注册表和二进制文件不太合适。@Oded好的,我明白我的问题了。谢谢你的帮助help@iKode-您是否在项目中添加了对
System.Configuration.dll
的引用?@Oded就是这样,我以为我已经包含了它,因为我的文件中有一个“using System.Configuration”。仍在使用Visual studio/asp.net等。感谢您的帮助。这仅限于当您的连接字符串位于“AppSettings”中时,它才应该位于web.config文件的“ConnectionString”标记中。为什么不使用由
ConfigurationManager
公开的内置
ConnectionString
部分?自.NET 2.0以来,不鼓励对连接字符串使用
AppSettings
。调用
ToString()
是多余的。
<connectionStrings>
 <add name="ApplicationServices"
       connectionString="You database information"
      />

 </connectionStrings>