Compartilhar via


XML Serializer Generator Tool (Sgen.exe)

O Gerador serializador XML cria um assembly de serialização XML para tipos em um assembly especificado. A montagem de serialização melhora o desempenho de inicialização de um XmlSerializer quando 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 Pathvariáveis de ambiente e Include de Libambiente 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 código de serialização para todos os tipos contidos no assembly ou executável especificado pelo nome do arquivo. Somente um nome de arquivo pode ser fornecido. Se esse argumento for repetido, o nome do último arquivo será usado.
/c[ompiler]:options Especifica as opções a serem passadas para o compilador C#. Todas as opções de csc.exe têm suporte à medida que 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 eles forem compilados no assembly de serialização. Isso pode ser usado para determinar se a ferramenta está gerando 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. Nota: O nome do assembly gerado é composto pelo nome do assembly de entrada mais "xmlSerializers.dll".
/p[roxytypes] Gera 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 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.

Observações

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

O Gerador serializador XML também pode melhorar o desempenho de clientes que usam proxies de serviço Web XML para se comunicar com servidores, pois o processo de serialização não incorrerá em um impacto de desempenho quando o tipo é carregado pela primeira vez.

Os assemblies gerados não podem ser usados no lado do servidor de um serviço Web. Essa ferramenta é apenas 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.

Nomeação

Se o assembly que contém o tipo a ser serializado for nomeado MyType.dll, o assembly de serialização associado será nomeado MyType.XmlSerializers.dll.

Exemplos

O comando a seguir cria um assembly chamado Data.XmlSerializers.dll para serializar todos os tipos contidos no assembly chamado 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.

Consulte também