Herramienta Generador de serializador XML (Sgen.exe)
El Generador de serializador XML crea un ensamblado de serialización XML para los tipos de un ensamblado especificado. El ensamblado de serialización mejora el rendimiento de inicio de un elemento XmlSerializer al serializar o deserializar objetos de los tipos especificados.
Nota:
Esta herramienta es específica de los ensamblados de .NET Framework. A fin de generar serializadores XML para ensamblados de .NET (Core), vea Uso del generador de serializadores XML de Microsoft en .NET Core.
Sintaxis
Ejecute la herramienta desde la línea de comandos.
sgen [options]
Sugerencia
Para que las herramientas de .NET Framework funcionen correctamente, debe usar el símbolo del sistema para desarrolladores de Visual Studio o Visual Studio Developer PowerShell o establecer correctamente las Path
variables de entorno , Include
y Lib
. Para establecer estas variables de entorno, ejecute SDKVars.bat, que se encuentra en el directorio <SDK>\<versión>\Bin.
Parámetros
Opción | Descripción |
---|---|
/a[ssembly]:filename | Genera código de serialización para todos los tipos incluidos en el ensamblado o la aplicación ejecutable especificados por filename. Solo se puede proporcionar un nombre de archivo. Si se repite este argumento, se utilizará el último nombre. |
/c[ompiler]:options | Especifica las opciones que se deben pasar al compilador de C#. Todas las opciones de csc.exe se admiten tal como se pasan al compilador. Esto puede servir para especificar que se debería firmar el ensamblado, así como para especificar el archivo de clave. |
/d[ebug] | Genera un imagen que se puede utilizar con un depurador. |
/f[orce] | Exige que se sobrescriba un ensamblado existente que tenga el mismo nombre. El valor predeterminado es false. |
/help o /? | Muestra las opciones y la sintaxis de los comandos para la herramienta. |
/k[eep] | Suprime la eliminación de los archivos de código fuente generados y otros archivos temporales después de que se han compilado en el ensamblado de serialización. Puede servir para determinar si la herramienta genera código de serialización para un tipo determinado. |
/n[ologo] | Suprime la presentación de la portada de inicio de Microsoft. |
/o[ut]:path | Especifica el directorio en el que se debe guardar el ensamblado generado. Nota: El nombre del ensamblado generado está compuesto por el nombre del ensamblado de entrada y "xmlSerializers.dll". |
/p[roxytypes] | Solo se genera código de serialización para los tipos de proxy de servicio Web XML. |
/r[eference]:assemblyfiles | Especifica los ensamblados a los que hacen referencia los tipos que requieren serialización XML. Acepta varios archivos de ensamblado separados por comas. |
/s[ilent] | Suprime la presentación de mensajes de aprobación. |
/t[ype]:type | Solo genera código de serialización para el tipo especificado. |
/v[erbose] | Muestra resultados detallados para la depuración. Enumera tipos del ensamblado de destino que no se pueden serializar con XmlSerializer. |
/? | Muestra las opciones y la sintaxis de los comandos para la herramienta. |
Comentarios
Cuando no se utiliza el generador de serializadores XML, XmlSerializer genera código de serialización y un ensamblado de serialización para cada tipo siempre que se ejecuta una aplicación. Para mejorar el rendimiento del inicio de la serialización XML, use la herramienta Sgen.exe a fin de generar esos ensamblados con antelación. Estos ensamblados se podrán implementar después con la aplicación.
El generador de serializadores XML también puede mejorar el rendimiento de los clientes que utilizan proxy de servicio web XML para comunicarse con los servidores, ya que el rendimiento del proceso de serialización no se verá afectado la primera vez que se carga el tipo.
Los ensamblados generados no se pueden utilizar en el lado del servidor de un servicio web. Esta herramienta solo es para los clientes de servicios web y escenarios de serialización manual.
Nota:
La herramienta sgen
no es compatible con establecedores de solo inicio. La herramienta generará un error si el ensamblado de destino contiene cualquier propiedad pública que use esta característica.
Nomenclatura
Si el ensamblado que contiene el tipo que se debe serializar se denomina MyType.dll, el ensamblado de serialización asociado se denominará MyType.XmlSerializers.dll.
Ejemplos
El comando siguiente crea un ensamblado denominado Data.XmlSerializers.dll para serializar todos los tipos que contiene el ensamblado denominado Data.dll.
sgen Data.dll
Se puede hacer referencia al ensamblado Data.XmlSerializers.dll desde código cuando se necesite serializar y deserializar los tipos en Data.dll.