pen*_*ate 444 .net c# visual-studio-2008 visual-studio
我试图connectionStrings
从配置文件中访问.代码是ASP.NET + C#.我已添加System.Configuration
参考,并提到使用.但它仍然不接受集会.
我正在使用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; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
配置:
<?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="Data Source=localhost;Initial Catalog=qbank;Persist Security Info=True;User ID=**;Password=****;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
Kie*_*ran 794
不仅需要使用命名空间 System.Configuration
.你也将引用添加到组装 System.Configuration.dll
,由
System.Configuration
.这肯定会起作用.还有NameValueCollection
你必须写:
using System.Collections.Specialized;
Run Code Online (Sandbox Code Playgroud)
小智 95
在项目中,右键单击" 添加引用...",在".NET"选项卡中,找到System.Configuration
组件名称,然后单击"确定".
using System.Configuration
告诉编译器/ IntelliSense在该命名空间中搜索您使用的任何类.否则,您System.Configuration.ConfigurationManager
每次都必须使用全名().但是,如果您不添加引用,则无法在任何位置找到该命名空间/类.
请注意,DLL可以具有任何名称空间,因此System.Configuration.dll
理论上该文件可以具有名称空间Some.Random.Name
.为了清晰/一致,它们通常是相同的,但也有例外.
cal*_*ios 18
System.Configuration
为所有项目添加as引用将解决此问题。
转到Project
->Add Reference
在出现的框中,单击All assemblies
左侧列表中的列表选项卡。
在中央列表中,滚动到System.Configuration
并确保选中该框。
单击“确定”进行申请,您现在可以访问该ConfigurationManager
课程。
Saa*_*rki 16
只需安装
Install-Package System.Configuration.ConfigurationManager -Version 4.5.0
Run Code Online (Sandbox Code Playgroud)
然后使用
using System.Configuration;
Run Code Online (Sandbox Code Playgroud)
小智 9
我已经为这个问题找到了更好的解决方案configurationmanager does not exist in the current context
.
要读取连接字符串,web.config
我们需要使用ConfigurationManager
类及其方法.如果你想使用,你需要使用添加命名空间System.Configuration
;
虽然您使用了此命名空间,但在尝试使用ConfigurationManager
该类时,系统会显示错误"configurationmanager在当前上下文中不存在".要解决这个问题:
ConfigurationManager.ConnectionStrings["ConnectionSql"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)
如果您收到很多警告(在我的情况下是64个解决方案!)就像
CS0618:'ConfigurationSettings.AppSettings'已过时:'此方法已过时,已被System.Configuration取代!System.Configuration.ConfigurationManager.AppSettings'
因为您正在升级旧项目,所以可以节省大量时间,如下所示:
System.Configuration
为参考部分的参考.将以下两个using
语句添加到每个class(.cs
)文件的顶部:
using System.Configuration;
using ConfigurationSettings = System.Configuration.ConfigurationManager;
通过这种改变所有的出现
ConfigurationSettings.AppSettings["mySetting"]
Run Code Online (Sandbox Code Playgroud)
现在将引用正确的配置管理器,不再是已弃用的配置管理器,并且所有CS0618警告将立即消失.
当然,请记住,这是一个快速的黑客.从长远来看,您应该考虑重构代码.
小智 8
现在你可以:
using System.Configuration;
Run Code Online (Sandbox Code Playgroud)
您确定已添加对.NET程序集的引用而不是其他内容吗?我将删除您的引用,然后尝试重新添加它,确保您从Visual Studio参考对话框中的.NET选项卡中选择 - 最新版本应该是GAC中的2.0.0.0.
归档时间: |
|
查看次数: |
489012 次 |
最近记录: |