2010-04-08 42 views
0

这似乎让我感到困惑 - 即时创建类库,并为其中包含的源文件添加所有必需的引用。将.NET引用与名称空间匹配

现在,关闭了,有超过300个编译器错误,抱怨缺少命名空间。 图书馆现在编译后,我刚刚添加所有的系统。*引用,但是这显然不是最好的方式。

I.e.如果一个类需要using System.Web.Script;,没有System.Web.Script参考,我将如何找出哪一个这些参考包含它? System.Web没有。

回答

2

是的命名空间和程序集是.NET中两个不同的概念......它们可以但不需要共享一个通用名称。

最好的办法是检查MSDN中缺少的类型(当文本光标位于缺少的类上方时,在Visual Studio中点击F1)。 MSDN文档将告诉你哪个命名空间和哪个类型的程序集定义在哪里。

1

的命名空间可以重新openwd所以多个组件可以在一个命名空间中定义的类。

// AssemblyFoo.dll 
namespace MyNamespace { 
    class Bar {} 
} 

// AssemblyBaz.dll 
namespace MyNamespace { 
    class Qux {} 
} 

对于MyNamespace.Bar需要引用AssemblyFoo.dll,为MyNamespace.Qux您需要引用AssemblyBaz.dll。你不能从命名空间中推导出所需的程序集。

你可以用它来查找使用MSDN定义的类的最好方法。

1

您还可以使用Visual Studio中的对象浏览器单击命名空间,它将显示程序集及其路径。只要程序集位于GAC或Visual Studio中,否则您应该可以在其中找到它。

您也可以在对象浏览器的搜索框中键入“System.Web.Script”,它会找到名称空间,然后右键单击并选择“转到定义”。它将带您到父级,这将是名称空间/程序集分组,您将看到它驻留的.dll文件。