NuGet 包包含其他开发人员提供的在项目中使用的可重用代码。 使用 NuGet 包管理器、包管理器控制台或 dotnet CLI 在 Visual Studio 项目中安装包。 本文介绍使用热门的 Newtonsoft.Json 包和 Windows Presentation Foundation (WPF) 项目的过程。 相同的过程适用于任何其他 .NET 或 .NET Core 项目。
安装完成后,请引用具有 using <namespace> 的代码中的包,其中 <namespace> 特定于正在使用的包。 建立引用后,可通过相应的 API 调用包。
提示 nuget.org 入门:为查找可在自己的应用程序中重用的组件,.NET 开发人员通常都会浏览 nuget.org 。 可以直接搜索 nuget.org 或根据本文中的介绍,在 Visual Studio 中查找和安装包 。 有关一般信息,请参阅查找和评估 NuGet 包。
先决条件
- Visual Studio 2019 .NET 桌面开发工作流。
可以从 visualstudio.com 免费安装 2019 Community 版,或者使用 Professional 或 Enterprise 版。
如果使用的是 Visual Studio for Mac,请参阅在 在 Visual Studio for Mac 中安装和使用 NuGet 包 | Microsoft Docs 中安装并使用包。
创建项目
可将 NuGet 包安装到任何 .NET 项目,前提是包支持与项目相同的目标框架。
本演练使用简单的 WPF 应用。 使用以下方法在 Visual Studio 中创建项目:单击“文件”“新建项目”,在搜索框中键入“.NET”,然后选择“WPF 应用(.NET Framework)”。 单击 “下一步” 。 出现提示时,接受 Framework 的默认值。
Visual Studio 创建项目 - 可在解决方案资源管理器中找到此项目。
添加 Newtonsoft.Json Nuget 包
若要安装此包,可以使用 NuGet 包管理器或包管理器控制台。 安装包时,NuGet 会将依赖项记录在项目文件或 packages.config 文件中(具体位置取决于项目格式)。
NuGet 程序包管理器
在解决方案资源管理器中,右键单击“引用”,选择“管理 NuGet 包” 。
将“nuget.org”选择为“包源”,选择“浏览”选项卡并搜索“Newtonsoft.Json”,在列表中选择该包,然后选择“安装” :
接受任何许可证提示。
(仅适用于 Visual Studio 2017)如果系统提示选择包管理格式,请选择 “项目文件中的 PackageReference”:
如果系统提示查看更改,请选择“确定” 。
程序包管理器控制台
选择“工具”“NuGet 包管理器”“包管理器控制台”菜单命令。
控制台打开后,检查 “默认项目”下拉列表中是否显示在程序包中要安装的项目。 如果在解决方案中有一个项目,则它已被选中。
输入命令 Install-Package Newtonsoft.Json(请参阅 Install-Package Newtonsoft.Json)。 控制台窗口会显示该命令的输出。 错误通常指示程序包与项目的目标框架不兼容。
在应用中使用 Newtonsoft.Json API
使用项目中的 Newtonsoft.Json 包,可调用 JsonConvert.SerializeObject 方法将对象转换为可人工读取的字符串。
打开 MainWindow.xaml 并将现有 Grid 元素替换为以下内容:
代码语言:javascript复制<Grid Background="White">
<StackPanel VerticalAlignment="Center">
<Button Click="Button_Click" Width="100px" HorizontalAlignment="Center" Content="Click Me" Margin="10"/>
<TextBlock Name="TextBlock" HorizontalAlignment="Center" Text="TextBlock" Margin="10"/>
</StackPanel>
</Grid>
打开 MainWindow.xaml.cs 文件(位于 MainWindow.xaml 节点下的解决方案资源管理器中),然后在 MainWindow 类中插入以下代码:
代码语言:javascript复制public class Account
{
public string Name { get; set; }
public string Email { get; set; }
public DateTime DOB { get; set; }
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Account account = new Account
{
Name = "John Doe",
Email = "john@microsoft.com",
DOB = new DateTime(1980, 2, 20, 0, 0, 0, DateTimeKind.Utc),
};
string json = JsonConvert.SerializeObject(account, Formatting.Indented);
TextBlock.Text = json;
}
尽管已将 Newtonsoft.Json 包添加到项目中,因为你需要使用代码文件最上方的 using 语句,所以 JsonConvert 下仍会出现红色波形曲线:
代码语言:javascript复制using Newtonsoft.Json;
要构建并运行应用,请按 F5 或选择“调试”“启动调试”:
选择按钮,查看替换为某些 JSON 文本的 TextBlock 的内容: