jsonecho

XML to C#

Incolla un documento XML e ottieni i tipi C# che ne rispecchiano la struttura.

Caricamento dello strumento...

Come usare XML to C#

  1. Incolla un esempio XML rappresentativo, idealmente uno con tutti i campi opzionali compilati.
  2. Imposta il nome del tipo radice e decidi se vuoi anche il codice di supporto o solo i tipi.
  3. Copia il codice C# generato nel tuo progetto.

Informazioni su XML to C#

Scrivere a mano le classi modello per un grande payload XML è noioso ed è lì che si insinuano gli errori di battitura. Incolla qui un esempio e il generatore ricava la struttura: quali campi esistono, quali sono oggetti, quali sono array e che tipo ha ogni valore. L'output è costituito da classi con proprietà. Deseleziona "Solo tipi" e l'output aggiunge gli attributi Newtonsoft.Json e una classe Converter.

L'XML viene prima convertito in JSON come nel nostro strumento XML to JSON: gli attributi ricevono il prefisso @_ e il contenuto testuale accanto agli attributi si chiama #text. I tipi C# vengono generati da quel risultato. I nomi delle proprietà vengono convertiti in PascalCase e decorati con un attributo JsonProperty in modo che la chiave originale venga preservata.

Usare il codice generato

Con gli helper, chiama Root.FromJson(json). Con i soli tipi, usa JsonSerializer.Deserialize<Root>(json) di System.Text.Json e aggiungi gli attributi se i nomi differiscono.

I membri nullable usano long?, double? e così via, più i tipi di riferimento nullable dove rilevante.

Domande frequenti

Da cosa dipende il codice C# generato?

L'output è costituito da classi con proprietà. Deseleziona "Solo tipi" e l'output aggiunge gli attributi Newtonsoft.Json e una classe Converter.

Come analizzo l'XML con il risultato?

Converti prima l'XML in JSON (il nostro strumento XML to JSON lo fa allo stesso modo), poi con gli helper chiama Root.FromJson(json). Con i soli tipi, usa JsonSerializer.Deserialize<Root>(json) di System.Text.Json e aggiungi gli attributi se i nomi differiscono.

Come vengono gestiti i campi opzionali e mancanti?

I membri nullable usano long?, double? e così via, più i tipi di riferimento nullable dove rilevante.

Il generatore guarda più di un record?

Conosce solo ciò che c'è nel tuo esempio. Se un campo manca dal tuo esempio, non comparirà nei tipi e, se un valore è null nel tuo esempio, il suo tipo è sconosciuto. Incolla un esempio in cui siano compilati il più possibile i campi, oppure incolla un array con diversi record differenti.

Il mio XML viene inviato a un server?

No. Il generatore viene scaricato nel tuo browser la prima volta che lo usi, circa 1 MB, e tutto viene eseguito in locale.

Altro in Da dati a classi

Tutti gli strumenti →