Uso dello strumento Microsoft per la generazione di serializzatori XML in .NET Core

In questa esercitazione viene illustrato come usare lo strumento Microsoft per la generazione di serializzatori XML in un'applicazione .NET Core di C#. Nel corso di questa esercitazione verranno illustrate le attività seguenti:

  • Come creare un'app .NET Core
  • Come aggiungere un riferimento al pacchetto Microsoft.XmlSerializer.Generator
  • Come modificare il file MyApp.cspro per aggiungere dipendenze
  • Come aggiungere una classe e un oggetto XmlSerializer
  • Come compilare ed eseguire l'applicazione

Lo strumento per la generazione di serializzatori XML (sgen.exe) è la soluzione per .NET Framework, mentre il pacchetto NuGet Microsoft.XmlSerializer.Generator è la soluzione equivalente per NET Core e .NET Standard. Viene creato un assembly di serializzazione XML per tipi contenuti in un assembly per migliorare le prestazioni di avvio della serializzazione XML durante la serializzazione o deserializzazione di oggetti di questi tipi usando XmlSerializer.

Prerequisiti

Per completare questa esercitazione:

Suggerimento

È necessario installare un editor del codice? Provare Visual Studio.

Usare lo strumento Microsoft per la generazione di serializzatori XML in un'applicazione console .NET Core

Le istruzioni seguenti illustrano come usare lo strumento per la generazione di serializzatori XML in un'applicazione console .NET Core.

Creare un'applicazione console .NET Core

Aprire un prompt dei comandi e creare una cartella denominata MyApp. Passare alla cartella creata e digitare il comando seguente:

dotnet new console

Aggiungere un riferimento al pacchetto Microsoft.XmlSerializer.Generator nel progetto MyApp

Usare il comando dotnet add package per aggiungere il riferimento nel progetto.

Tipo:

dotnet add package Microsoft.XmlSerializer.Generator -v 1.0.0

Verificare le modifiche a MyApp.csproj dopo aver aggiunto il pacchetto

Prima di iniziare, aprire l'editor del codice. Si lavorerà ancora dalla directory MyApp in cui è stata compilata l'app.

Aprire MyApp.csproj nell'editor di testo.

Dopo aver eseguito il comando dotnet add package, al file di progetto MyApp.csproj vengono aggiunte le righe seguenti:

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

Aggiungere un'altra sezione ItemGroup per il supporto dello strumento dell'interfaccia della riga di comando .NET

Aggiungere le righe seguenti dopo la sezione ItemGroup analizzata:

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

Aggiungere una classe nell'applicazione

Aprire Program.cs nell'editor di testo. Aggiungere la classe denominata MyClass in Program.cs.

public class MyClass
{
   public int Value;
}

Creare un oggetto XmlSerializer per MyClass

Aggiungere la riga seguente in Main per creare un oggetto XmlSerializer per MyClass:

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

Compilare ed eseguire l'applicazione

All'interno della cartella MyApp eseguire l'applicazione tramite dotnet run. Verranno caricati e usati automaticamente i serializzatori generati in precedenza in fase di esecuzione.

Nella finestra di console digitare il comando seguente:

dotnet run

Nota

dotnet run chiama dotnet build per assicurarsi che le destinazioni siano state compilate e quindi chiama dotnet <assembly.dll> per eseguire l'applicazione di destinazione.

Importante

I comandi e i passaggi illustrati in questa esercitazione per eseguire l'applicazione vengono usati solo durante la fase di sviluppo. Quando si è pronti a distribuire l'app, è opportuno esaminare le diverse strategie di distribuzione per le app .NET Core e il comando dotnet publish.

Se è stato eseguito tutto correttamente, un assembly denominato MyApp.XmlSerializers.dll viene generato nella cartella di output.

Complimenti. Sono state eseguite le attività seguenti:

  • Creazione di un'app .NET Core.
  • Aggiunta di un riferimento al pacchetto Microsoft.XmlSerializer.Generator.
  • Modifica del file MyApp.cspro per l'aggiunta di dipendenze.
  • Aggiunta di una classe e un oggetto XmlSerializer.
  • Compilazione ed esecuzione dell'applicazione.

Personalizzare ulteriormente l'assembly di serializzazione XML (facoltativo)

Aggiungere il codice XML seguente al file MyApp.csproj per personalizzare ulteriormente la generazione di assembly:

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