为什么 'using' 子句不接受包名

Why name of the package is not accepted for 'using' clause

我刚刚开始探索 Visual Studio 中的 NuGet,所以这几乎是一个初学者问题。我想了解解决方案资源管理器中显示的 NuGet 包的名称是否始终是我们在 using 子句中包含的内容? 这是上下文。我正在使用 Visual Studio 2019。我在我的解决方案中创建了一个针对 .NET 5.0 框架的存根项目(控制台应用程序)。这是存根:-

using System;

namespace Random
{
    class Program
    {
        static void Main(string[] args)
        {
           
        }
    }
}

现在,我使用解决方案资源管理器中的 'Manage NuGet Packages' 选项针对名为 itext7 7.1.15 的项目(项目 url https://itextpdf.com/)安装了 NuGet 包。包安装成功。

正如您在屏幕截图中看到的那样,包的名称显示为 'itext7',因此我将其包含在我的代码中,如下面的屏幕截图所示,但正如您所看到的,它没有被识别:-

我的实际问题是——假设我只是随机安装任何 NuGet 程序包,我在解决方案资源管理器中看到的程序包名称是否没有足够的知识来针对该程序包发出 using 语句?在我尝试过的许多其他软件包中,它都有效。那么,如何才能确切知道 using 对任意包使用什么?

有一些通常遵循的“命名约定”,但它们大多是约定而不是强制执行,因此它可能因包而异。

通常,public 软件包有一些 tutorials/documentations 显示需要使用的内容。但是你也可以使用Visual Studio中的Class View来查看所有导入的namespaces/classes,这是基于包元数据

如果您仍然无法理解包的功能,也可以使用像 dotPeek (https://www.jetbrains.com/decompiler/) 这样的反编译器,但根据包的许可,可能不允许这样做。

命名空间应该是using iText;。您可以阅读此 api 文档:https://api.itextpdf.com/iText7/dotnet/7.1.15/namespaces.html