当尝试运行我的代码时,我收到以下错误:
CS0234:命名空间“System.Data”中不存在类型或命名空间名称“OracleClient”(是否缺少程序集引用?)
我已经引用了System.Data.dll
and System.Data.OracleClient.dll
,但我仍然收到此错误。
该错误是由线路引起的using System.Data.OracleClient
在我的命名空间声明中。
The using System.Data.OracleClient
指令意味着在尝试确定非全名的含义时应考虑该名称空间。
添加引用意味着添加对给定程序集的引用,在本例中为 System.Data.OracleClient.dll。在 VisualStudio、SharpDevelop 或 MonoDevelop 中,您将在项目资源管理器视图中看到一个引用文件夹。右键单击“添加引用”(VisualStudio 和 SharpDevelop)或“编辑引用”(MonoDevelop),然后添加到 System.Data.OracleClient.dll
如果使用 nant,您需要编辑 nant 脚本。
程序集和命名空间重叠,但并不完全相同。该参考意味着您可以使用例如System.Data.OracleClient.OracleDataReader
因为该项目现在知道该代码所在的程序集。using
指令意味着你只需要输入OracleDataReader
。程序集和命名空间之间往往存在严重匹配,因为这使每个人的生活都更轻松,但有时一个程序集具有来自多个命名空间的类,并且有时一个命名空间被拆分为多个程序集。一个典型的例子是 mscorlib 有很多来自System
, System.Collections
, System.IO
等等,如果没有(包括 .NET 使用的一些项目),您就不能真正希望构建 .NET 项目,而 System.dll 有更多来自完全相同的命名空间的内容,您可以在不使用的情况下获得这些项目(但是您99% 的情况下仍然会发生)。
除非您正在编写一个绝对庞大的库,并且有数千个类覆盖重叠的用例,否则您自己的程序集应该使用单个命名空间 - 或者最多是单个命名空间,其中包含一些其他命名空间,例如JaredksGreatCode
having JaredksGreatCode.UserInterface
在其中 - 每个单个 DLL。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)