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:
- .NET Core 2.1 SDK of hoger.
- Uw favoriete code-editor.
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>