Compartir a través de


Usar el generador de serializador XML de Microsoft en .NET Core

Este tutorial muestra cómo usar el generador de serializador XML de Microsoft en una aplicación .NET Core de C#. Este tutorial ayuda a:

  • Cómo crear una aplicación .NET Core
  • Cómo agregar una referencia al paquete Microsoft.XmlSerializer.Generator
  • Cómo editar el archivo MyApp.csproj para agregar dependencias
  • Cómo agregar una clase y un XmlSerializer
  • Cómo compilar y ejecutar la aplicación

Tal y como sucede con el generador de serializador de XML (sgen.exe) para .NET Framework, el paquete Microsoft.XmlSerializer.Generator de NuGet es el equivalente para proyectos de .NET Core y .NET Standard. Crea un ensamblado de serialización de XML para los tipos contenidos en un ensamblado para mejorar el rendimiento de inicio de la serialización XML al serializar o deserializar objetos de esos tipos con XmlSerializer.

Requisitos previos

Para realizar este tutorial:

Sugerencia

¿Es necesario instalar un editor de código? Pruebe Visual Studio.

Usar el generador de serializador de XML de Microsoft en una aplicación de consola .NET Core

Las instrucciones siguientes muestran cómo usar el generador de serializador XML en una aplicación de consola .NET Core.

Creación de una aplicación de consola .NET Core

Abra un símbolo del sistema y cree una carpeta denominada MyApp. Vaya a la carpeta que creó y escriba estos comandos:

dotnet new console

Agregue una referencia al paquete Microsoft.XmlSerializer.Generator en el proyecto de MyApp

Use el comando dotnet add package para agregar la referencia en el proyecto.

Tipo:

dotnet add package Microsoft.XmlSerializer.Generator -v 1.0.0

Comprobar los cambios en MyApp.csproj después de agregar el paquete

Abra el editor de código para empezar. Todavía estamos trabajando desde el directorio MyApp en el que hemos compilado la aplicación.

Abra MyApp.csproj en el editor de texto.

Después de ejecutar el comando dotnet add package, se agregan estas líneas al archivo de proyecto MyApp.csproj:

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

Adición de otra sección ItemGroup para admitir la herramienta de la CLI de .NET

Agregue estas líneas después de la sección ItemGroup que hemos inspeccionado:

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

Agregar una clase en la aplicación

Abra Program.cs en el editor de texto. Agregue la clase con el nombre MyClass en Program.cs.

public class MyClass
{
   public int Value;
}

Crear un XmlSerializer para MyClass

Agregue esta línea dentro de Main para crear un XmlSerializer para MyClass:

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

Compilar y ejecutar la aplicación

Seguimos en la carpeta MyApp, desde donde vamos a ejecutar la aplicación mediante dotnet run. Se carga automáticamente y usa los serializadores generados previamente en tiempo de ejecución.

Escriba el siguiente comando en la ventana de consola:

dotnet run

Nota

dotnet run llama a dotnet build para asegurarse de que los destinos de la compilación se han creado y, después, llama a dotnet <assembly.dll> para ejecutar la aplicación de destino.

Importante

Los comandos y los pasos que se muestran en este tutorial para ejecutar la aplicación se usan solo durante el desarrollo. Una vez que esté listo para implementar la aplicación, eche un vistazo a las diferentes estrategias de implementación para aplicaciones .NET Core y al comando dotnet publish.

Si todo se realiza correctamente, se genera un ensamblado con el nombre .dll MyApp.XmlSerializers.dll en la carpeta de salida.

¡Enhorabuena! Acaba de:

  • Crear una aplicación .NET Core.
  • Agregar una referencia al paquete Microsoft.XmlSerializer.Generator.
  • Editar MyApp.csproj para agregar dependencias.
  • Agregue una clase y un XmlSerializer.
  • Compilar y ejecutar la aplicación.

Personalización adicional del ensamblado de serialización XML (opcional)

Agregue el archivo XML siguiente a MyApp.csproj para personalizar aún más la generación de ensamblados:

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