本教程介绍如何在 C# 应用程序中使用 Microsoft XML 序列化程序生成器。 在本教程的过程中,你将了解:
- 如何创建 .NET 控制台应用
- 如何添加对 Microsoft.XmlSerializer.Generator 包的引用
- 如何编辑 MyApp.csproj 以添加依赖项
- 如何添加类和 XmlSerializer
- 如何生成和运行应用程序
与 .NET Framework 的 Xml 序列化程序生成器(sgen.exe) 一样, Microsoft.XmlSerializer.Generator NuGet 包 等效于 .NET Core/.NET 5+ 和 .NET Standard 项目。 它为程序集中包含的类型创建 XML 序列化程序集,以便在使用 XmlSerializer 对这些类型的对象进行序列化或反序列化时提高 XML 序列化的启动性能。
先决条件
若要完成本教程,
- .NET Core 2.1 SDK 或更高版本。
- 你喜欢的代码编辑器。
小窍门
需要安装代码编辑器? 请尝试 Visual Studio!
以下说明演示如何在 .NET Core 控制台应用程序中使用 XML 序列化程序生成器。
创建应用
打开命令提示符并创建名为 MyApp 的文件夹。 导航到创建的文件夹并键入以下命令:
dotnet new console添加对 Microsoft.XmlSerializer.Generator 包的引用。
dotnet add package Microsoft.XmlSerializer.Generator -v 8.0.0运行此命令后,以下行将添加到 MyApp.csproj 项目文件中:
<ItemGroup> <PackageReference Include="Microsoft.XmlSerializer.Generator" Version="8.0.0" /> </ItemGroup>通过将以下
ItemGroup部分添加到项目文件来添加工具引用。<ItemGroup> <DotNetCliToolReference Include="Microsoft.XmlSerializer.Generator" Version="8.0.0" /> </ItemGroup>在文本编辑器中打开 Program.cs 。 在 Program.cs 中添加名为 MyClass的类。
public class MyClass { public int Value; }创建一个
XmlSerializer用于MyClass。 将以下行添加到 Program.cs 文件:var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyClass));生成并运行应用程序。 通过
dotnet run运行应用程序:dotnet run应用会在运行时自动加载和使用预生成的序列化程序。
小窍门
dotnet run调用dotnet build以确保生成目标已生成,然后调用dotnet <assembly.dll>以运行目标应用程序。
重要
本教程中显示的用于运行应用程序的命令和步骤仅在开发期间使用。 准备好部署应用后,请查看 .NET 应用和命令的不同dotnet publish。
如果一切成功,则会在输出文件夹中生成名为 MyApp.XmlSerializers.dll 的程序集。
祝贺! 你只需:
- 创建了 .NET 控制台应用。
- 添加了对 Microsoft.XmlSerializer.Generator 包的引用。
- 编辑了 MyApp.csproj 以添加依赖项。
- 添加了一个类和一个XmlSerializer。
- 生成并运行应用程序。
进一步自定义 XML 序列化程序集(可选)
将以下 XML 添加到 MyApp.csproj 以进一步自定义程序集生成:
<PropertyGroup>
<SGenReferences>C:\myfolder\abc.dll;C:\myfolder\def.dll</SGenReferences>
<SGenTypes>MyApp.MyClass;MyApp.MyClass1</SGenTypes>
<SGenProxyTypes>false</SGenProxyTypes>
<SGenVerbose>true</SGenVerbose>
<SGenKeyFile>mykey.snk</SGenKeyFile>
<SGenDelaySign>true</SGenDelaySign>
</PropertyGroup>