Пакеты NuGet, как узнать их директиву `using`? - PullRequest
2 голосов
/ 03 октября 2019

Немного фона. Я относительно новичок в системе диспетчера пакетов NuGet, но на данный момент я установил несколько пакетов.

У меня есть вопрос, касающийся NuGet: как нам узнать, как ссылаться на установленный пакет с помощью usingдиректива?

Я знаю, что пакеты NuGet имеют описания в диспетчере пакетов NuGet. Однако они не всегда показывают, как импортировать пакеты. Поэтому я в основном заканчиваю поиск в Google для примеров пакета, который я устанавливаю, чтобы увидеть, есть ли пример, показывающий, что директива using предназначена для импорта этого пакета.

Недавно я установил пакет Selenium.WebDriver.PhantomJS.XplatformМне трудно найти в Интернете примеры, показывающие, где находится пакет и как его импортировать.

Ответы [ 3 ]

3 голосов
/ 03 октября 2019

Проблема в том, что пакет NuGet может содержать ноль или более сборок, которые могут быть добавлены в качестве ссылок на проект, в котором вы устанавливаете его. Таким образом, между пакетами и сборками нет единого отношения;между пространствами имен и сборками также нет (сборка может содержать несколько пространств имен или одно и то же пространство имен может использоваться несколькими сборками), поэтому между именами пакетов и именами сборок в них и пространств имен в них нет.

Итак: вы должны знать, что вы делаете. Есть причина, по которой вы выбрали установку Selenium.WebDriver.PhantomJS.Xplatform. Кто-то, должно быть, сказал вам, или вы где-то читали, что вы должны это сделать.

Когда вы сталкиваетесь с ситуацией, когда слышите или читаете «Вы должны установить пакет Foo, тогда этот источник также должен дать вам примеры того, как использовать содержащиеся в нем типы. в этих пакетах. И именно здесь вы должны прочитать, какие пространства имен импортировать, чтобы сделать это.

Некоторым библиотекам также не нужен код для работы;они представляют собой дополнения в виде плагинов к другим библиотекам, которые вы должны уже иметь для их использования.

2 голосов
/ 03 октября 2019

Обычно пакеты nuget имеют GitHub-репозиторий или, возможно, веб-сайт. Иногда вы можете найти примеры, иногда вам нужно просмотреть исходный код.

Я пошел в их репозиторий Github и обнаружил, что одно из используемых им пространств имен: OpenQA.Selenium.

Вы можетепроверьте их исходный код здесь .

0 голосов
/ 04 октября 2019

когда я указываю это с помощью директивы, он говорит мне имя типа или имени пространства имен ...

Все выше описывает подробности о том, как узнать директиву using, поэтому добавьте некоторые деталичтобы выяснить, почему Nuget не несет за это ответственности, что в VS отвечает за это и что может сделать для нас Intellisense (опция).

Пакеты NuGet, как узнать их using директива?

Nuget в VS - это просто Package Manager, он не будет знать директиву using.

Для большинства пакетов nuget они содержат как минимум одну сборку. Когда вы используете пакет, вы фактически добавляете ссылку на сборки из пакета. Так что эквивалентно , если у вас есть какие-то сборки, разработанные кем-то, а затем вы ссылаетесь на них локально (add => reference => browse) в своем проекте. Так что в этой ситуации Nuget не будет знать, как использовать сборки с using ...

(Здесь мы просто говорим о сборках в пакете, пакет nuget имеет гораздо больше преимуществиз его install.ps1, создайте контент ...)

Что на самом деле делает для вас VS, это Intellisense , оно отвечает за распознавание вашего оператора using в редакторе кода и помогаетпредоставлять подсказки для быстрой информации (добавьте, используя пространство имен, импортируйте ссылку ...)

Функция, о которой вы говорите, Intellisense, а не Nuget, а Intellisense используется для check если ваша директива using верна, она будет искать, существует ли пространство имен, которое вы используете, в ссылочных сборках, но оно будет отображать только неправильное (если не может найти) или правильное, оно не скажет вам, как использоватьсборки и какое пространство имен определено в них! Это то, что вам нужно, чтобы просмотреть исходный код или изучить пример, например, Вячеслав и CodeCaster ответил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...