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是用来检查是正确的,它会搜索你使用的命名空间是否存在于引用的程序集中,但它只会显示错误(如果找不到)或正确,它不会告诉你如何使用程序集以及其中定义的命名空间!这是您需要查看源代码或研究示例的内容,例如 Vyacheslav 和 CodeCaster 回答。
一点背景。我对 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是用来检查是正确的,它会搜索你使用的命名空间是否存在于引用的程序集中,但它只会显示错误(如果找不到)或正确,它不会告诉你如何使用程序集以及其中定义的命名空间!这是您需要查看源代码或研究示例的内容,例如 Vyacheslav 和 CodeCaster 回答。