NuGet 包如何知道它们的 using 指令?

NuGet packages how to know their `using` directive?

一点背景。我对 NuGet 包管理器系统比较陌生,但到目前为止我已经安装了几个包。

关于 NuGet 我的问题是我们如何知道如何使用 using 指令引用已安装的包?

我知道 NuGet 包在 NuGet 包管理器中有描述。但是,它们并不总是显示如何导入包。因此,我大部分时间都在谷歌上搜索我安装的包的示例,以查看是否有一个示例显示 using 指令用于导入该包的内容。

最近我安装了包 Selenium.WebDriver.PhantomJS.Xplatform 我很难在网上找到显示包所在位置以及如何导入它的示例。

通常 nuget 包有一个 github 存储库或者一个网站。 有时你可以找到例子,有时你必须通过源代码。

我去了他们的 Github 存储库,发现他们使用的命名空间之一是:OpenQA.Selenium.

你可以查看他们的源代码here

问题是 NuGet 包可以包含零个或多个程序集,可以将这些程序集添加为对安装它的项目的引用。所以包和程序集之间没有一对一的关系;命名空间和程序集之间不存在(一个程序集可以包含多个命名空间,或者同一个命名空间可以被多个程序集使用),所以包名和其中的程序集名称以及其中的命名空间之间也不存在。

所以:你必须知道你在做什么。您选择安装 Selenium.WebDriver.PhantomJS.Xplatform 是有原因的。一定是有人告诉你的,或者你一定是在某个地方读到过你应该这样做的。

当您确实遇到听到或读到 "You should install package Foo!" 的情况时,该来源还应该为您提供示例,说明如何使用其中包含的类型包裹。这就是您应该阅读要导入哪些名称空间的地方。

有些库也不需要任何代码即可运行;它们是 other 库的类似插件,您应该已经准备好才能使用它们。

when I put that using directive it tells me The type or namespace name...

以上描述了如何知道using指令的细节,所以添加一些细节来阐明为什么nuget不负责它,VS中的什么负责它以及Intellisense(选项)可以为我们做。

NuGet packages how to know their using directive?

VS 中的 Nuget 只是一个 Package Manager,它不会知道 using 指令。

对于大多数 nuget 包,它们至少包含一个程序集,当您使用该包时,实际上是从该包中添加对程序集的引用。所以它 等同于 你有一些由某人开发的程序集,然后你在你的项目中本地引用它们(添加=>引用=>浏览)。所以在这种情况下,Nuget 将不知道如何使用 using...

的程序集

(这里说说package中的assemblies,nuget package的install更有优势ps1,build content...)

VS 中实际为你做的是 Intellisense,它负责在代码编辑器中识别你的 using 语句,并帮助提供快速信息建议。(添加使用命名空间,导入引用...)

你说的函数是Intellisense,不是Nuget,如果你的using指令,Intellisense是用来检查是正确的,它会搜索你使用的命名空间是否存在于引用的程序集中,但它只会显示错误(如果找不到)或正确,它不会告诉你如何使用程序集以及其中定义的命名空间!这是您需要查看源代码或研究示例的内容,例如 VyacheslavCodeCaster 回答。