如何避免出现“当前上下文中不存在ConfigurationManager名称”的错误?

6
我正在使用VS2008。我有一个连接到数据库的项目,连接字符串从App.config中通过ConfigurationManager读取。我们使用L2E。
现在我添加了一个帮助程序AndeDataViewer,以便拥有一个简单的UI来显示数据库中的数据,用于测试/验证目的。
我不想在帮助程序中创建另一组实体数据模型。我只是将所有相关文件作为链接添加到新的帮助程序中。
当我编译时,我得到以下错误:
Error   15  The name 'ConfigurationManager' does not exist in the current context   C:\workspace\SystemSoftware\SystemSoftware\src\systeminfo\RuntimeInfo.cs    24  40  AndeDataViewer

我认为我需要从主项目向辅助项目添加另一个与项目设置/配置相关的文件的链接?新的辅助项目中没有App.config文件。但是看起来我无法将该文件的链接添加到辅助项目中。有什么想法吗?

3个回答

28

在你的项目中,右键单击,选择添加引用... 在 .NET 选项卡中找到"System.Configuration"组件名称,然后单击确定。

"using System.Configuration"告诉编译器/智能感知在该命名空间中搜索您使用的任何类。否则,您将不得不每次都使用完整名称(System.Configuration.ConfigurationManager)。但如果您不添加引用,则该命名空间/类将无法在任何地方找到。

请注意,DLL 可以具有任何命名空间,因此文件 System.Configuration.dll 在理论上可以具有命名空间 "Some.Random.Name"。为了清晰/一致,它们通常是相同的,但也有例外。


是的,当我开始学习.NET时,这个问题曾经让我困惑过。参考文献告诉你在哪里查找代码,而using只是为了避免每次都输入完整的命名空间。对于自己的外部(DLL)代码也是同样适用。 - Nelson Rothermel
哦,如果你想删除那个引用,可以在项目中展开“引用”文件夹,右键点击并在那里删除它。 - Nelson Rothermel
为了帮助您更好地理解,您还可以右键单击引用,然后选择“在对象浏览器中查看”。或者转到“视图”菜单,选择“对象浏览器”。层次结构中的第一级是DLL,第二级是该DLL中的命名空间。这只是一种将代码分组的简单方法。 - Nelson Rothermel
非常感谢你的参与和贡献。 - 5YrsLaterDBA

3
如果您正在尝试访问Azure云服务中的云配置文件并且遇到错误消息:
“CloudConfigurationManager在当前上下文中不存在” 与CloudConfigurationManager类相关,那么您只需要将Nuget包Microsoft.WindowsAzure.ConfigurationManager 添加到您的项目中。
然后,请确保在尝试访问云配置文件的类中包含使用语句"using Microsoft.Azure"
希望这可以帮助您!

0

我认为您缺少对System.Configuration.dll的引用或using System.Configuration子句


"System.Configuration.dll"在哪里?有使用"System.Configuration"子句。 - 5YrsLaterDBA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接