共用方式為


在 .NET Core 上使用 Microsoft XML 序列化程式產生器

本教學課程教導您如何在 C#.NET Core 應用程式中使用 Microsoft XML 序列化程式產生器。 您會在本教學課程中了解︰

  • 如何建立 .NET Core 應用程式
  • 如何新增 Microsoft.XmlSerializer.Generator 套件的參考
  • 如何編輯 MyApp.csproj 以新增相依性
  • 如何新增類別和 XmlSerializer
  • 如何建置和執行應用程式

Microsoft.XmlSerializer.Generator NuGet 套件類似於 XML 序列化程式產生器 (sgen.exe),是 .NET Core 和 .NET Standard 專案的對等項目。 此套件能夠為組件中包含的類型建立 XML 序列化組件,可在將這些類型的物件序列化或還原序列化時,使用 XmlSerializer 來提升 XML 序列化的啟動效能。

必要條件

完成本教學課程:

提示

需要安裝程式碼編輯器嗎? 試用 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 序列化組件 (選擇性)

將下列 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>