Strumento XML Serializer Generator (Sgen.exe)

Lo strumento per la generazione di serializzatori XML crea un assembly di serializzazione XML per i tipi in un assembly specificato. L'assembly di serializzazione migliora le prestazioni di avvio di un XmlSerializer quando serializza o deserializza oggetti dei tipi specificati.

Nota

Questo strumento è specifico per gli assembly .NET Framework. Per generare serializzatori XML per assembly .NET (Core), vedere Usare Strumento Microsoft per la generazione di serializzatori XML in .NET Core.

Sintassi

Eseguire lo strumento dalla riga di comando.

sgen [options]

Suggerimento

Affinché gli strumenti di .NET Framework funzionino correttamente, è necessario usare il Prompt dei comandi per gli sviluppatori di Visual Studio o PowerShell per gli sviluppatori di Visual Studio o impostare correttamente le variabili di ambiente Path, Include e Lib. Per impostare queste variabili di ambiente, eseguire SDKVars.bat, che si trova nella directory <SDK>\<versione>\Bin.

Parametri

Opzione Descrizione
/a[ssembly]:filename Genera il codice di serializzazione per tutti i tipi contenuti nell'assembly o nell'eseguibile specificato da nomefile. È possibile indicare un solo nome file. Se questo argomento viene ripetuto, verrà utilizzato l'ultimo nome file.
/c[ompiler]:opzioni Specifica l'opzione da passare al compilatore C#. Tutte le opzioni di csc.exe vengono supportate dopo essere state passate al compilatore. Questa opzione può essere utilizzata per specificare che l'assembly deve essere firmato e per indicare il file di chiave.
/d[ebug] Genera un'immagine utilizzabile con un debugger.
/f[orce] Impone la sovrascrittura di un assembly esistente con lo stesso nome. L'impostazione predefinita è false.
/help o /? Visualizza la sintassi e le opzioni di comando dello strumento.
/k[eep] Impedisce l'eliminazione dei file di origine generati e di altri file temporanei al termine della compilazione nell'assembly di serializzazione. Questa opzione può essere utilizzata per determinare se lo strumento genera codice di serializzazione per un determinato tipo.
/n[ologo] Elimina la visualizzazione del messaggio di avvio Microsoft.
/o[ut]:path Specifica la directory in cui salvare l'assembly generato. Nota: il nome dell'assembly generato è composto dal nome dell'assembly di input e da "xmlSerializers.dll".
/p[roxytypes] Genera codice di serializzazione solo per i tipi proxy del servizio Web XML.
/r[eference]:assemblyfiles Specifica gli assembly a cui fanno riferimento i tipi che richiedono la serializzazione XML. Accetta più file di assembly separati da virgole.
/s[ilent] Evita la visualizzazione dei messaggi di operazione riuscita.
/t[ype]:type Genera codice di serializzazione solo per il tipo specificato.
/v[erbose] Visualizza output dettagliato per il debug. Elenca i tipi dell'assembly di destinazione che non possono essere serializzati con XmlSerializer.
/? Visualizza la sintassi e le opzioni di comando dello strumento.

Osservazioni:

Quando lo strumento per la generazione di serializzatori XML non viene utilizzato, XmlSerializer genera codice e un assembly di serializzazione per ogni tipo ogni volta che viene eseguita un'applicazione. Per migliorare le prestazioni dell'avvio della serializzazione XML, usare lo strumento Sgen.exe per generare tali assembly in anticipo. Tali assembly potranno quindi essere distribuiti insieme all'applicazione.

Lo strumento per la generazione di serializzatori XML può inoltre migliorare le prestazioni dei client che utilizzano i proxy del servizio Web XML per comunicare con i server, in quanto il processo di serializzazione non influisce sulle prestazioni quando il tipo viene caricato per la prima volta.

Gli assembly generati non possono essere utilizzati sul lato server di un servizio Web. Questo strumento è destinato esclusivamente ai client del servizio Web e agli scenari di serializzazione manuale.

Nota

Lo strumento sgen non è compatibile con i setter di sola inizializzazione. Lo strumento avrà esito negativo se l'assembly di destinazione contiene proprietà pubbliche che usano questa funzionalità.

Denominazione

Se l'assembly contenente il tipo da serializzare è denominato MyType.dll, l'assembly di serializzazione associato verrà denominato MyType.XmlSerializers.dll.

Esempi

Il comando seguente crea un assembly denominato Data.XmlSerializers.dll per la serializzazione di tutti i tipi contenuti nell'assembly denominato Data.dll.

sgen Data.dll

L'assembly Data.XmlSerializers.dll può essere preso come riferimento dal codice che deve serializzare e deserializzare i tipi in Data.dll.

Vedi anche