何时由.NET Framework组件实现.NET命名空间?

HAB*_*ABO 17 .net c# visual-studio-2010

(另一个问题来自我的"显然我是这里唯一的白痴"系列.)

当我需要使用.NET Framework中的类时,我尽职地查找文档以确定相应的命名空间,然后在我的源代码中添加"using"指令:

using System.Text.RegularExpressions;
Run Code Online (Sandbox Code Playgroud)

通常我很擅长这一点,但有时Intellisense不会识别新类,项目也不会构建.在对象浏览器中快速检查确认我有正确的命名空间.挫折随之而来.

使用HttpUtility.UrlEncode()涉及添加适当的指令:

using System.Web;
Run Code Online (Sandbox Code Playgroud)

但它还需要添加对.NET Framework Component的引用System.Web,即在Solution Explorer中右键单击该项目,选择Add Reference并从.NET选项卡添加System.Web.

我如何从文档中辨别.NET命名空间是否由必须引用的.NET Framework组件实现?每次我使用命名空间时,我宁愿不通过可用的组件来寻找需要引用的机会.

(对于那些喜欢在课后留下并清理橡皮擦的人:将组织使用>删除和排序还删除对项目中其他地方未使用的组件的引用?如何清理不必要的引用?)

dle*_*lev 24

看看UrlEncode的这个链接:

命名空间:System.Web

程序集:System.Web(在System.Web.dll中)

组装线告诉你哪些dll引用.


Str*_*ior 7

您会注意到文档(例如http://msdn.microsoft.com/en-us/library/system.web.httputility.aspx)会告诉您应该在其中找到该类的程序集/ DLL的名称,以及类的命名空间.

命名空间:System.Web
程序集:System.Web(在System.Web.dll中)

在旁注中,我知道它可能有点亲爱的,但Resharper让这样的事情变得如此简单.如果您是一位认真的开发人员,您可能需要考虑投资许可证.对于橡皮擦清洁器,Resharper在解决方案资源管理器中的引用上的右键单击菜单中添加了一个方便的"查找依赖于模块的代码"项.它不是一个自动清理,但它可以让你更容易看到你的项目是否还在使用某些东西.


Jon*_*eet 6

该文档为任何类型指定了两件事:

  • 类型的命名空间(对于using指令)
  • 包含类型的程序集(这是您添加引用的内容)

举一个两者不同的例子,请查看以下文档Enumerable:

命名空间:System.Linq
程序集:System.Core(在System.Core.dll中)