Dela via


Använda Microsoft XML Serializer Generator på .NET Core

I den här självstudien lär du dig hur du använder Microsoft XML Serializer Generator i ett C# .NET Core-program. Under den här självstudiekursen lär du dig:

  • Så här skapar du en .NET Core-app
  • Så här lägger du till en referens till paketet Microsoft.XmlSerializer.Generator
  • Så här redigerar du ditt MyApp.csproj och lägger till beroenden
  • Så här lägger du till en klass och en XmlSerializer
  • Så här skapar och kör du programmet

Precis som Xml Serializer Generator (sgen.exe) för .NET Framework är NuGet-paketet Microsoft.XmlSerializer.Generator motsvarigheten för .NET Core- och .NET Standard-projekt. Den skapar en XML-serialiseringssammansättning för typer som ingår i en sammansättning för att förbättra startprestanda för XML-serialisering vid serialisering eller av-serialisering av objekt av dessa typer med hjälp XmlSerializerav .

Krav

För att slutföra den här kursen behöver du:

Tips

Behöver du installera en kodredigerare? Prova Visual Studio!

Använda Microsoft XML Serializer Generator i ett .NET Core-konsolprogram

Följande instruktioner visar hur du använder XML Serializer Generator i ett .NET Core-konsolprogram.

Skapa en .NET Core-konsolapp

Öppna en kommandotolk och skapa en mapp med namnet MyApp. Gå till mappen som du skapade och skriv följande kommando:

dotnet new console

Lägg till en referens till paketet Microsoft.XmlSerializer.Generator i MyApp-projektet

dotnet add package Använd kommandot för att lägga till referensen i projektet.

Ange:

dotnet add package Microsoft.XmlSerializer.Generator -v 1.0.0

Verifiera ändringar i MyApp.csproj när du har lagt till paketet

Öppna kodredigeraren så kommer vi igång! Vi arbetar fortfarande från katalogen MyApp som vi skapade appen i.

Öppna MyApp.csproj i textredigeraren.

När du har kört dotnet add package kommandot läggs följande rader till i projektfilen MyApp.csproj :

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

Lägg till ett annat ItemGroup-avsnitt för stöd för .NET CLI Tool

Lägg till följande rader efter avsnittet ItemGroup som vi inspekterade:

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

Lägga till en klass i programmet

Öppna Program.cs i textredigeraren. Lägg till klassen MyClass i Program.cs.

public class MyClass
{
   public int Value;
}

Skapa en XmlSerializer för MyClass

Lägg till följande rad i Main för att skapa en XmlSerializer för MyClass:

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

Skapa och kör appen

Kör programmet via dotnet run i mappen MyApp och läses in automatiskt och de förgenererade serialiserarna används vid körning.

Skriv följande kommando i konsolfönstret:

dotnet run

Anteckning

dotnet run anrop dotnet build för att säkerställa att byggmålen har skapats och anropar dotnet <assembly.dll> sedan för att köra målprogrammet.

Viktigt

Kommandona och stegen som visas i den här självstudien för att köra ditt program används endast under utvecklingstiden. När du är redo att distribuera din app kan du ta en titt på de olika distributionsstrategierna för .NET Core-appar och dotnet publish kommandot.

Om allt lyckas genereras en sammansättning med namnet MyApp.XmlSerializers.dll i utdatamappen.

Grattis! Du har precis:

  • Skapade en .NET Core-app.
  • Lade till en referens till paketet Microsoft.XmlSerializer.Generator.
  • Redigerade myApp.csproj för att lägga till beroenden.
  • Lade till en klass och en XmlSerializer.
  • Skapade och körde programmet.

Ytterligare anpassa XML-serialiseringssammansättningen (valfritt)

Lägg till följande XML i MyApp.csproj för att ytterligare anpassa sammansättningsgenereringen:

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