我试图从配置文件访问connectionStrings。代码是ASP。Net + c#。我已经添加了System。配置参考,也提到与使用。但它仍然不接受集会。

我正在使用VSTS 2008。知道是什么原因吗?

另一个奇怪的地方是程序集名称显示为“System”。configuration",小写c,这不是其他系统程序集的名称显示方式。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;

namespace Utility
{
    public class CommonVariables
    {
        public static String ConnectionString
        {
            get { return ConfigurationManager.ConnectionStrings["EmployeeEntities"].ConnectionString; }
        }  
    }  
}

配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="qbankEntities" connectionString="metadata=res://*/qbankModel.csdl|res://*/qbankModel.ssdl|res://*/qbankModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost;Initial Catalog=qbank;Persist Security Info=True;User ID=**;Password=****;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

当前回答

您确定添加了对.NET程序集的引用,而不是其他内容吗?我会删除你的引用,然后尝试重新添加它,确保你从Visual Studio引用对话框中的. net选项卡中选择-最新版本应该是2.0.0.0。

其他回答

如果此代码在单独的项目中,如库项目。 不要忘记向system.configuration添加引用。

不仅需要使用名称空间System.Configuration。您还必须将引用添加到程序集System.Configuration.dll,通过

右键单击引用/依赖项 选择添加参考 找到并添加System.Configuration。

这肯定有用。 同样,对于NameValueCollection,你必须写:

using System.Collections.Specialized;

只需安装

Install-Package System.Configuration.ConfigurationManager -Version 4.5.0

然后使用

using System.Configuration;

如果你正在使用实体框架核心,另一种解决方案可以如下:

右键单击项目并选择“管理Nuget包” 在“浏览”选项卡上,搜索“Z.EntityFramework.Extensions.EFCore” 安装这个包,'using System.Configuration;'将会被删除 自动添加。

如果你得到了很多警告(在我的例子中,一个解决方案中有64个!

CS0618:“ConfigurationSettings。这个方法已经过时了,它已经被System.Configuration!System.Configuration. configurationmanager .AppSettings所取代。

因为你正在升级一个旧的项目,你可以节省很多时间,如下所示:

添加系统。配置作为参考部分的参考。 在每个class (.cs)文件的顶部添加以下两个using语句: 使用System.Configuration; using ConfigurationSettings = System.Configuration.ConfigurationManager;

由此变化所发生的一切

ConfigurationSettings.AppSettings["mySetting"]

现在将引用正确的配置管理器,不再是已弃用的配置管理器,并且所有CS0618警告将立即消失。

当然,请记住,这是一个快速的hack。从长远来看,您应该考虑重构代码。