Share via


Microsoft XML Serializer Generator gebruiken in .NET Core

In deze zelfstudie leert u hoe u de Microsoft XML Serializer Generator gebruikt in een C# .NET Core-toepassing. In deze zelfstudie leert u het volgende:

  • Een .NET Core-app maken
  • Een verwijzing toevoegen aan het pakket Microsoft.XmlSerializer.Generator
  • MyApp.csproj zo bewerken dat u afhankelijkheden kunt toevoegen
  • Een klasse en een XmlSerializer toevoegen
  • De toepassing bouwen en uitvoeren

Net als de XML Serializer Generator (sgen.exe) voor de .NET Framework, is het NuGet-pakket Microsoft.XmlSerializer.Generator het equivalent voor .NET Core- en .NET Standard-projecten. Er wordt een XML-serialisatieassembly gemaakt voor typen in een assembly om de opstartprestaties van XML-serialisatie te verbeteren bij het serialiseren of deserialisatie van objecten van deze typen met behulp XmlSerializervan .

Vereisten

Vereisten voor het voltooien van deze zelfstudie:

Tip

Wilt u een code-editor installeren? Probeer Visual Studio!

Microsoft XML Serializer Generator gebruiken in een .NET Core-consoletoepassing

De volgende instructies laten zien hoe u XML Serializer Generator gebruikt in een .NET Core-consoletoepassing.

Een .NET Core-consoletoepassing maken

Open een opdrachtprompt en maak een map met de naam MyApp. Navigeer naar de map die u hebt gemaakt en typ de volgende opdracht:

dotnet new console

Voeg een verwijzing toe naar het pakket Microsoft.XmlSerializer.Generator in het project MyApp

Gebruik de dotnet add package opdracht om de verwijzing toe te voegen in uw project.

Type:

dotnet add package Microsoft.XmlSerializer.Generator -v 1.0.0

Wijzigingen in MyApp.csproj controleren na het toevoegen van het pakket

Open uw code-editor en laten we aan de slag gaan. We werken nog steeds vanuit de map MyApp waarin we de app hebben gebouwd.

Open MyApp.csproj in uw teksteditor.

Nadat u de dotnet add package opdracht hebt uitgevoerd, worden de volgende regels toegevoegd aan het projectbestand MyApp.csproj :

<ItemGroup>
   <PackageReference Include="Microsoft.XmlSerializer.Generator" Version="1.0.0" />
</ItemGroup>

Een andere sectie ItemGroup toevoegen voor ondersteuning van .NET CLI Tool

Voeg de volgende regels toe na de ItemGroup sectie die we hebben gecontroleerd:

<ItemGroup>
   <DotNetCliToolReference Include="Microsoft.XmlSerializer.Generator" Version="1.0.0" />
</ItemGroup>

Een klasse toevoegen in de toepassing

Open Program.cs in uw teksteditor. Voeg de klasse met de naam MyClass toe in Program.cs.

public class MyClass
{
   public int Value;
}

XmlSerializer Een maken voor MyClass

Voeg de volgende regel toe in Main om een XmlSerializer voor MyClass te maken:

var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyClass));

De toepassing bouwen en uitvoeren.

Nog steeds in de map MyApp voert u de toepassing uit via dotnet run . Deze wordt automatisch geladen en gebruikt de vooraf gegenereerde serializers tijdens runtime.

Typ de volgende opdracht in het consolevenster:

dotnet run

Notitie

dotnet run roept dotnet build aan om ervoor te zorgen dat de builddoelen zijn gebouwd en roept vervolgens aan dotnet <assembly.dll> om de doeltoepassing uit te voeren.

Belangrijk

De opdrachten en stappen die in deze zelfstudie worden weergegeven om uw toepassing uit te voeren, worden alleen gebruikt tijdens de ontwikkeltijd. Zodra u klaar bent om uw app te implementeren, bekijkt u de verschillende implementatiestrategieën voor .NET Core-apps en de dotnet publish opdracht .

Als alles slaagt, wordt een assembly met de naamMyApp.XmlSerializers.dll gegenereerd in de uitvoermap.

Gefeliciteerd U hebt zojuist het volgende:

  • Er is een .NET Core-app gemaakt.
  • Er is een verwijzing toegevoegd naar het pakket Microsoft.XmlSerializer.Generator.
  • Uw MyApp.csproj bewerkt om afhankelijkheden toe te voegen.
  • Er is een klasse en een XmlSerializer toegevoegd.
  • De toepassing is gebouwd en uitgevoerd.

XML-serialisatieassembly verder aanpassen (optioneel)

Voeg de volgende XML toe aan uw MyApp.csproj om het genereren van assembly's verder aan te passen:

<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>