共用方式為


在 .NET Core 上使用 Microsoft XML 串行化程序產生器

在本教學課程中,您將瞭解如何在 C# 應用程式中使用 Microsoft XML 串行化程式產生器。 During the course of this tutorial, you learn:

  • 如何建立 .NET 控制台應用程式
  • How to add a reference to the Microsoft.XmlSerializer.Generator package
  • 如何編輯 MyApp.csproj 以新增相依性
  • How to add a class and an XmlSerializer
  • 如何建置和執行應用程式

如同 .NET Framework 的 Xml 串行化程序產生器 (sgen.exe),Microsoft.XmlSerializer.Generator NuGet 套件相當於 .NET Core/.NET 5+ 和 .NET Standard 專案。 It creates an XML serialization assembly for types contained in an assembly to improve the startup performance of XML serialization when serializing or de-serializing objects of those types using XmlSerializer.

先決條件

若要完成本教學課程:

小提示

需要安裝程式代碼編輯器嗎? 請嘗試 Visual Studio

下列指示說明如何在 .NET Core 控制台應用程式中使用 XML 串行化程式產生器。

建立應用程式

  1. 開啟命令提示字元,並建立名為 MyApp 的資料夾。 瀏覽至您建立的資料夾,然後輸入下列命令:

    dotnet new console
    
  2. Add a reference to the Microsoft.XmlSerializer.Generator package.

    dotnet add package Microsoft.XmlSerializer.Generator -v 8.0.0
    

    After running this command, the following lines are added to your MyApp.csproj project file:

    <ItemGroup>
       <PackageReference Include="Microsoft.XmlSerializer.Generator" Version="8.0.0" />
    </ItemGroup>
    
  3. 將下列 ItemGroup 區段新增至項目檔,以新增工具參考。

    <ItemGroup>
       <DotNetCliToolReference Include="Microsoft.XmlSerializer.Generator" Version="8.0.0" />
    </ItemGroup>
    
  4. 在文本編輯器中開啟 Program.cs 。 在 Program.cs 中新增名為 MyClass 的類別。

    public class MyClass
    {
       public int Value;
    }
    
  5. Create an XmlSerializer for MyClass. 將下列這一行新增至 Program.cs 檔案:

    var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyClass));
    
  6. 建置並執行應用程式。 透過 dotnet run執行應用程式:

    dotnet run
    

    應用程式會在運行時間自動載入並使用預先產生的序列化器。

    小提示

    dotnet run 呼叫 dotnet build 以確保建置目標已建置,然後呼叫 dotnet <assembly.dll> 以執行目標應用程式。

這很重要

本教學課程中用來執行應用程式的命令和步驟只會在開發期間使用。 準備好部署應用程式之後,請查看 .NET 應用程式和 命令的不同dotnet publish

如果一切成功,則會在輸出資料夾中產生名為 MyApp.XmlSerializers.dll 的元件。

祝賀! 您只需要:

  • 已建立 .NET 主控台應用程式。
  • Added a reference to the Microsoft.XmlSerializer.Generator package.
  • 編輯 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>