Visual C#: 如何找出我缺少的程序集或引用

3
我正在使用Visual Studio 2012。我知道当我使用新类型时,需要它们的using指令。我理解不同的using指令需要不同的程序集或引用。
我对MS VS相当陌生。有没有一种简单的方法来找出为特定的using指令需要添加哪个程序集或引用?
例如:
我刚刚使用了类型FileContentResult。 这在System.Web.Mvc中。 我应该添加哪个程序集或引用?
再次说明,我是在问一般情况,而不仅仅是这种情况。理想情况下,我希望有一个技巧,每次发生这种情况时都可以快速找到所需的引用。

5
投资于Resharper插件。它为您完成工作,而且更多功能。无论您是家庭用户还是专业人士都可以使用。对于C#来说,这个工具是最重要的之一。 - Samuel
2
@Liam,我认为这是有所不同的,因为他正处于设计时间而不是运行时间。 - Samuel
2
尽管我支持使用resharper,但我仍然认为你应该知道如何在没有它的情况下找到程序集。过度依赖工具会造成损害。 - tbddeveloper
2
顺便说一下:using 指令和程序集引用不是相同的!您需要使用程序集引用来添加“其他”程序集,而您可以使用“using”来避免编写命名空间。 - Hans Kesting
@HansKesting:谢谢您的澄清! - trh178
1个回答

9

不想听起来太古老和粗鲁,但确定你的类型属于哪个程序集的正确方法是阅读文档

MSDN

命名空间:System.Web.Mvc

程序集:System.Web.Mvc(位于 System.Web.Mvc.dll 中)

如果你需要更快速的方式,.NET 类型的典型命名约定是它们将位于与其命名空间匹配的程序集中,或者其父级命名空间中的一个程序集中,因此从你正在尝试添加的命名空间开始向后工作,直到找到具有该名称的文件为止。

很不幸,没有规则可以保证事情总是按照这种方式进行,因此总会有例外。其中一个让我非常疯狂的是 EntityFramework.dll 不包含 EntityFramework 命名空间,而是 System.Data.Entity,我猜这是因为微软在想什么 -- 我不知道他们在想什么,这很愚蠢。但至少 MSDN 在这方面帮助了你;对于名称不好且没有文档的第三方程序集,最好的选择是找到一个看起来可能与你正在尝试使用的相关的程序集,然后使用 ildasm 和/或将其添加为参考,并扫描元数据。

我的意思是,一般来说它们的名称也是相同的。 - Jono
@Michael:不用担心,我没有生气。这正是我在寻找的答案类型。顺便说一下,我已经在 MSDN 文档中了,只是找错了位置。我从来没有在使用这些文档时取得过什么好运气。也许我的真正任务是学会如何有效地使用这些文档! - trh178
我刚刚谷歌了完整的类型名称,MSDN几乎总是出现在第一个链接。 - Michael Edenfield

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