Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm erfahren Sie, wie Sie den Microsoft XML Serializer Generator in einer C#-Anwendung verwenden. Im Verlauf dieses Lernprogramms lernen Sie:
- So erstellen Sie eine .NET-Konsolen-App
- So fügen Sie einen Verweis auf das Microsoft.XmlSerializer.Generator-Paket hinzu
- So bearbeiten Sie Ihre MyApp.csproj, um Abhängigkeiten hinzuzufügen
- Hinzufügen einer Klasse und eines XmlSerializers
- Erstellen und Ausführen der Anwendung
Wie der Xml Serializer Generator (sgen.exe) für .NET Framework ist das Microsoft.XmlSerializer.Generator NuGet-Paket das Äquivalent für .NET Core/.NET 5+ - und .NET Standard-Projekte. Es erstellt eine XML-Serialisierungsassembly für Typen, die in einer Assembly vorhanden sind, um die Startleistung der XML-Serialisierung zu verbessern, wenn Objekte dieser Typen mithilfe von XmlSerializer serialisiert oder deserialisiert werden.
Voraussetzungen
Um dieses Tutorial abzuschließen:
- .NET Core 2.1 SDK oder höher.
- Ihr Lieblingscode-Editor.
Tipp
Müssen Sie einen Code-Editor installieren? Probieren Sie Visual Studio aus!
Die folgenden Anweisungen zeigen, wie Sie den XML-Serializer-Generator in einer .NET Core-Konsolenanwendung verwenden.
Erstellen der App
Öffnen Sie eine Eingabeaufforderung, und erstellen Sie einen Ordner mit dem Namen "MyApp". Navigieren Sie zu dem ordner, den Sie erstellt haben, und geben Sie den folgenden Befehl ein:
dotnet new console
Fügen Sie einen Verweis auf das Microsoft.XmlSerializer.Generator-Paket hinzu.
dotnet add package Microsoft.XmlSerializer.Generator -v 8.0.0
Nachdem Sie diesen Befehl ausgeführt haben, werden der Projektdatei "MyApp.csproj" die folgenden Zeilen hinzugefügt:
<ItemGroup> <PackageReference Include="Microsoft.XmlSerializer.Generator" Version="8.0.0" /> </ItemGroup>
Fügen Sie einen Toolverweis hinzu, indem Sie der Projektdatei den folgenden
ItemGroup
Abschnitt hinzufügen.<ItemGroup> <DotNetCliToolReference Include="Microsoft.XmlSerializer.Generator" Version="8.0.0" /> </ItemGroup>
Öffnen Sie Program.cs in Ihrem Text-Editor. Fügen Sie eine Klasse mit dem Namen "MyClass" in Program.cs hinzu.
public class MyClass { public int Value; }
Erstellen Sie eine
XmlSerializer
fürMyClass
. Fügen Sie der datei Program.cs die folgende Zeile hinzu:var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyClass));
Erstellen Sie die Anwendung, und führen Sie sie aus. Starten Sie die Applikation über
dotnet run
.dotnet run
Die App lädt automatisch und verwendet zur Laufzeit die vorgenerierten Serialisierer.
Tipp
dotnet run
ruftdotnet build
auf, um sicherzustellen, dass die Build-Ziele erstellt wurden, und ruft danndotnet <assembly.dll>
auf, um die Zielanwendung auszuführen.
Wichtig
Die in diesem Lernprogramm gezeigten Befehle und Schritte zum Ausführen Ihrer Anwendung werden nur während der Entwicklungszeit verwendet. Wenn Sie bereit sind, Ihre App bereitzustellen, sehen Sie sich die verschiedenen Bereitstellungsstrategien für .NET-Apps und den dotnet publish
Befehl an.
Wenn alles erfolgreich ist, wird eine Assembly mit dem Namen MyApp.XmlSerializers.dll im Ausgabeordner generiert.
Glückwunsch! Sie haben nur Folgendes:
- Es wurde eine .NET-Konsolen-App erstellt.
- Ein Verweis auf das Microsoft.XmlSerializer.Generator-Paket wurde hinzugefügt.
- Ihre MyApp.csproj wurde bearbeitet, um Abhängigkeiten hinzuzufügen.
- Eine Klasse und ein XmlSerializer wurden hinzugefügt.
- Erstellt und führt die Anwendung aus.
Weitere Anpassung der XML-Serialisierungsassembly (optional)
Fügen Sie Ihrer MyApp.csproj den folgenden XML-Code hinzu, um die Assemblygenerierung weiter anzupassen:
<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>