Utilizar o Microsoft XML Serializer Generator no .NET Core
Este tutorial ensina-o a utilizar o Microsoft XML Serializer Generator numa aplicação C# .NET Core. Durante este tutorial, irá aprender:
- Como criar uma aplicação .NET Core
- Como adicionar referência ao pacote Microsoft.XmlSerializer.Generator
- Como editar o seu MyApp.csproj para adicionar dependências
- Como adicionar uma classe e um XmlSerializer
- Como criar e executar a aplicação
Tal como o Xml Serializer Generator (sgen.exe) para o .NET Framework, o pacote NuGet Microsoft.XmlSerializer.Generator é o equivalente para projetos .NET Core e .NET Standard. Cria uma assemblagem de serialização XML para tipos contidos numa assemblagem para melhorar o desempenho de arranque da serialização XML ao serializar ou des serializar objetos desses tipos com XmlSerializer.
Pré-requisitos
Para concluir este tutorial:
- SDK .NET Core 2.1 ou posterior.
- O seu editor de código favorito.
Dica
Precisa de instalar um editor de código? Experimente o Visual Studio!
Utilizar o Gerador de Serializador XML da Microsoft numa aplicação de consola .NET Core
As seguintes instruções mostram-lhe como utilizar o XML Serializer Generator numa aplicação de consola .NET Core.
Criar uma aplicação de consola .NET Core
Abra uma linha de comandos e crie uma pasta com o nome MyApp. Navegue para a pasta que criou e escreva o seguinte comando:
dotnet new console
Adicionar uma referência ao pacote Microsoft.XmlSerializer.Generator no projeto MyApp
Utilize o dotnet add package
comando para adicionar a referência no seu projeto.
Escreva:
dotnet add package Microsoft.XmlSerializer.Generator -v 1.0.0
Verificar as alterações a MyApp.csproj depois de adicionar o pacote
Abra o seu editor de código e vamos começar! Ainda estamos a trabalhar a partir do diretório MyApp em que criámos a aplicação.
Abra MyApp.csproj no seu editor de texto.
Depois de executar o dotnet add package
comando, as seguintes linhas são adicionadas ao ficheiro de projeto MyApp.csproj :
<ItemGroup>
<PackageReference Include="Microsoft.XmlSerializer.Generator" Version="1.0.0" />
</ItemGroup>
Adicionar outra secção ItemGroup para suporte da Ferramenta da CLI de .NET
Adicione as seguintes linhas após a ItemGroup
secção que inspecionámos:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.XmlSerializer.Generator" Version="1.0.0" />
</ItemGroup>
Adicionar uma classe na aplicação
Abra Program.cs no seu editor de texto. Adicione a classe com o nome MyClass em Program.cs.
public class MyClass
{
public int Value;
}
Criar um XmlSerializer
para MyClass
Adicione a seguinte linha dentro de Main para criar uma XmlSerializer
para MyClass:
var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyClass));
Compilar e executar a aplicação
Ainda na pasta MyApp , execute a aplicação através dotnet run
de e carrega e utiliza automaticamente os serializadores pré-gerados no tempo de execução.
Escreva o seguinte comando na janela da consola:
dotnet run
Nota
dotnet run
chama dotnet build
para garantir que os destinos de compilação foram criados e, em seguida, chama dotnet <assembly.dll>
para executar a aplicação de destino.
Importante
Os comandos e os passos apresentados neste tutorial para executar a sua aplicação são utilizados apenas durante o tempo de desenvolvimento. Assim que estiver pronto para implementar a sua aplicação, veja as diferentes estratégias de implementação para aplicações .NET Core e o dotnet publish
comando .
Se tudo for bem-sucedido, é gerada uma assemblagem com o nome MyApp.XmlSerializers.dll na pasta de saída.
Parabéns! Tem apenas:
- Criou uma aplicação .NET Core.
- Foi adicionada uma referência ao pacote Microsoft.XmlSerializer.Generator.
- Editou o myApp.csproj para adicionar dependências.
- Foi adicionada uma classe e um XmlSerializer.
- Compilou e executou a aplicação.
Personalizar ainda mais a assemblagem de serialização XML (opcional)
Adicione o seguinte XML ao myApp.csproj para personalizar ainda mais a geração de assemblagens:
<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>