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.