XML Serializer Generator Tool (Sgen.exe)

O Gerador serializador XML cria um assembly de serialização XML para tipos em um assembly especificado. O assembly de serialização aprimora o desempenho de inicialização de um XmlSerializer quando ele serializa ou desserializa objetos dos tipos especificados.

Observação

Essa ferramenta é específica para assemblies do .NET Framework. Para gerar serializadores XML para assemblies .NET (Core), consulte Usar o Gerador de Serializador XML da Microsoft no .NET Core.

Sintaxe

Execute a ferramenta na linha de comando.

sgen [options]

Dica

Para que as ferramentas do .NET Framework funcionem corretamente, você deve usar o Prompt de Comando do Desenvolvedor do Visual Studio ou o PowerShell do Desenvolvedor do Visual Studio ou definir as variáveis de ambiente Path, Include e Lib corretamente. Para definir essas variáveis de ambiente, execute SDKVars.bat, que está localizado no diretório <SDK>\<version>\Bin.

parâmetros

Opção Descrição
/a[ssembly]:filename Gera o código de serialização para todos os tipos contidos no assembly ou no executável especificado pelo filename. Somente um nome de arquivo pode ser fornecido. Se esse argumento for repetido, o último nome de arquivo será usado.
/c[ompiler]:options Especifica as opções para passar para o compilador C#. Todas as opções csc.exe têm suporte quando são passadas para o compilador. Isso pode ser usado para especificar que o assembly deve ser assinado e para especificar o arquivo de chave.
/d[ebug] Gera uma imagem que pode ser usada com um depurador.
/f[orce] Força a substituição de um assembly existente de mesmo nome. O padrão é false.
/help ou /? Exibe sintaxe de comando e opções para a ferramenta.
/k[eep] Suprime a exclusão dos arquivos de origem gerados e outros arquivos temporários depois que tiverem sido compilados no assembly de serialização. Isso pode ser usado para determinar se a ferramenta está gerando o código de serialização para um tipo específico.
/n[ologo] Suprime a exibição do banner de inicialização da Microsoft.
/o[ut]:path Especifica o diretório no qual salvar o assembly gerado. Observação: o nome do assembly gerado é composto pelo nome do assembly de entrada mais “xmlSerializers.dll”.
/p[roxytypes] Gera o código de serialização somente para os tipos de proxy de serviço Web XML.
/r[eference]:assemblyfiles Especifica os assemblies que são referenciados pelos tipos que exigem a serialização de XML. Aceita vários arquivos de assembly separados por vírgulas.
/s[ilent] Suprime a exibição de mensagens de sucesso.
/t[ype]:type Gera o código de serialização somente para o tipo especificado.
/v[erbose] Exibe a saída detalhada para depuração. Lista os tipos do assembly de destino que não podem ser serializados com o XmlSerializer.
/? Exibe sintaxe de comando e opções para a ferramenta.

Comentários

Quando o Gerador do Serializador do XML não é usado, um XmlSerializer gera o código de serialização e um assembly de serialização para cada tipo toda vez que um aplicativo é executado. Para aprimorar o desempenho da inicialização da serialização de XML, use a ferramenta Sgen.exe para gerar esses assemblies com antecedência. Esses assemblies podem então ser implantados com o aplicativo.

O Gerador do Serializador do XML também pode aprimorar o desempenho de clientes que usam proxies de serviço Web XML para se comunicarem com servidores porque o processo de serialização não incorrerá em um acerto de desempenho quando o tipo for carregado pela primeira vez.

Os assemblies gerados não podem ser usados no lado do servidor de um serviço Web. Essa ferramenta é somente para clientes de serviço Web e cenários de serialização manual.

Observação

A ferramenta sgen não é compatível com setters somente init. A ferramenta falhará se o assembly de destino contiver quaisquer propriedades públicas que usem esse recurso.

Nomenclatura

Se o assembly que contém o tipo para serializar é denominado MyType.dll, o assembly de serialização associada será denominado MyType.XmlSerializers.dll.

Exemplos

O comando a seguir cria um assembly denominado Data.XmlSerializers.dll para serializar todos os tipos contidos no assembly denominado Data.dll.

sgen Data.dll

O assembly Data.XmlSerializers.dll pode ser referenciado do código que precisa serializar e desserializar os tipos no Data.dll.

Confira também