在 .NET Core 上使用 Microsoft XML 序列化程序生成器
本教程介绍如何在 C# .NET Core 应用程序中使用 Microsoft XML 序列化程序生成器。 在本教程中可学习:
如何创建 .NET Core 应用
如何添加 Microsoft.XmlSerializer.Generator 包引用
如何编辑 MyApp.csproj,以添加依赖项
如何添加类和 XmlSerializer
如何生成并运行应用程序
正如适用于 .NET Framework 的 Xml Serializer Generator (sgen.exe),Microsoft.XmlSerializer.Generator NuGet 包 是适用于 .NET Core 和 .NET 标准项目的等效项。 它为程序集中包含的类型创建 XML 序列化程序集,从而提高使用 XmlSerializer 序列化或反序列化这些类型对象时,XML 序列化的启动性能。
先决条件
完成本教程:
.NET Core 2.1 SDK 或更高版本。
最喜爱的代码编辑器。
提示
需要安装代码编辑器? 试用 Visual Studio!
在 .NET Core 控制台应用程序中使用 Microsoft XML 序列化程序生成器
以下说明将展示如何在 .NET Core 控制台应用程序中使用 XML 序列化程序生成器。
创建 .NET Core 控制台应用程序
打开命令提示符,创建一个名为“MyApp”的文件夹。 导航到创建的文件夹,并键入以下命令:
dotnet new console
在 MyApp 项目中向 Microsoft.XmlSerializer.Generator 包添加引用
使用 dotnet add package 命令在项目中添加引用。
类型:
dotnet add package Microsoft.XmlSerializer.Generator -v 1.0.0
添加包后,验证对 MyApp.csproj 的更改
打开代码编辑器并开始操作! 仍从生成了应用的 MyApp 目录中进行操作。
在文本编辑器中打开 MyApp.csproj。
运行 dotnet add package 命令后,会将以下行添加到 MyApp.csproj 项目文件中:
<ItemGroup>
<PackageReference Include="Microsoft.XmlSerializer.Generator" Version="1.0.0" />
</ItemGroup>
为 .NET CLI 工具支持添加其他 ItemGroup 部分
在已检查的 ItemGroup 部分后添加以下行:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.XmlSerializer.Generator" Version="1.0.0" />
</ItemGroup>
在应用程序中添加类
在文本编辑器中打开 Program.cs。 在 Program.cs 中添加名为“MyClass”的类 。
public class MyClass
{
public int Value;
}
为 MyClass 创建 XmlSerializer
在 Main 中添加以下行,为 MyClass 创建 XmlSerializer:
var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyClass));
编译和运行应用程序
还是在 MyApp 文件夹中,通过 dotnet run 运行应用程序,它会在运行时自动加载和使用预生成的序列化程序。
在控制台窗口中键入以下命令:
dotnet run
备注
dotnet run 调用 dotnet build 来确保已生成要生成的目标,然后调用 dotnet <assembly.dll> 运行目标应用程序。
重要
本教程中用来运行应用程序的命令和步骤仅用于开发过程。 准备好部署应用后,查看适用于 .NET Core 应用的不同部署策略和 dotnet publish 命令。
如果一切顺利,则会在输出文件夹中生成名为“MyApp.XmlSerializers.dll”的程序集。
祝贺你! 你刚才已完成:
创建 .NET Core 应用。
向 Microsoft.XmlSerializer.Generator 包中添加引用。
编辑 MyApp.csproj 以添加依赖项。
添加类和 XmlSerializer。
生成和运行应用程序。
相关资源
XML 序列化简介
如何使用 XmlSerializer 进行序列化 (C#)
如何:使用 XmlSerializer (Visual Basic) 进行序列化
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击