在 .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 序列化的啟動效能。
必要條件
完成本教學課程:
- .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 序列化組件 (選擇性)
將下列 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>