这似乎让我感到困惑 - 即时创建类库,并为其中包含的源文件添加所有必需的引用。将.NET引用与名称空间匹配
现在,关闭了,有超过300个编译器错误,抱怨缺少命名空间。 图书馆现在编译后,我刚刚添加所有的系统。*引用,但是这显然不是最好的方式。
I.e.如果一个类需要using System.Web.Script;
,没有System.Web.Script
参考,我将如何找出哪一个这些参考包含它? System.Web
没有。
这似乎让我感到困惑 - 即时创建类库,并为其中包含的源文件添加所有必需的引用。将.NET引用与名称空间匹配
现在,关闭了,有超过300个编译器错误,抱怨缺少命名空间。 图书馆现在编译后,我刚刚添加所有的系统。*引用,但是这显然不是最好的方式。
I.e.如果一个类需要using System.Web.Script;
,没有System.Web.Script
参考,我将如何找出哪一个这些参考包含它? System.Web
没有。
是的命名空间和程序集是.NET中两个不同的概念......它们可以但不需要共享一个通用名称。
最好的办法是检查MSDN中缺少的类型(当文本光标位于缺少的类上方时,在Visual Studio中点击F1)。 MSDN文档将告诉你哪个命名空间和哪个类型的程序集定义在哪里。
好吧,编译器会抱怨错过的类,而不是错过的命名空间。你必须在MSDN上寻找类,在那里你会找到相关的命名空间和程序集。
例如为DropDownList
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.dropdownlist%28v=VS.80%29.aspx
在顶部,你可以阅读
Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)
的命名空间可以重新openwd所以多个组件可以在一个命名空间中定义的类。
// AssemblyFoo.dll
namespace MyNamespace {
class Bar {}
}
// AssemblyBaz.dll
namespace MyNamespace {
class Qux {}
}
对于MyNamespace.Bar
需要引用AssemblyFoo.dll
,为MyNamespace.Qux
您需要引用AssemblyBaz.dll
。你不能从命名空间中推导出所需的程序集。
你可以用它来查找使用MSDN定义的类的最好方法。
您还可以使用Visual Studio中的对象浏览器单击命名空间,它将显示程序集及其路径。只要程序集位于GAC或Visual Studio中,否则您应该可以在其中找到它。
您也可以在对象浏览器的搜索框中键入“System.Web.Script”,它会找到名称空间,然后右键单击并选择“转到定义”。它将带您到父级,这将是名称空间/程序集分组,您将看到它驻留的.dll文件。