Quando creiamo applicazioni non web (console, MAUI, WPF, servizi windows e così via) spesso abbiamo la necessità di invocare web api. Le web api serializzano e deserializzano i JSON di input e output sfruttando la libreria System.Text.Json con dei settings predefiniti che vengono creati in fase di creazione dell'host dell'applicazione. Quando deserializziamo dobbiamo serializzare e deserializzare i payload JSON da applicazioni non web, dobbiamo applicare gli stessi settings per non incorrere in errori dovuti.
Sebbene questi settings siano abbastanza semplici, dobbiamo documentarci per scoprire quali siano e in ogni applicazione dobbiamo crearci un'istanza e riusarla in ogni punto in cui si invoca una api. Con .NET 9 abbiamo a disposizione l'istanza singleton JsonSerializerOptions.Web che contiene esattamente gli stessi settings di ASP.NET e che possiamo direttamente usare nel nostro codice.
var payload = new Person { Id = 42, Nome = "Stefano Mostarda" };
var serialized = JsonSerializer.Serialize(payload, JsonSerializerOptions.Web);
Console.WriteLine(serialized);
// stampa { "Id": 42, "Nome": "Stefano Mostarda" }Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire il ciclo di vita di AbortController in Javascript
Recuperare gli audit log in Azure DevOps
Utilizzo del persistent state di Blazor nel prerendering
Migrare applicazioni legacy nel cloud con Azure App Service Managed Instance
Gestire pubblicazione Kubernetes tramite .NET Aspire
Blazor e Static Web Assets in .NET 10
Disabilitare la telemetria nella CLI di GitHub
Impostare automaticamente l'altezza del font tramite CSS
Eseguire i pre-commit hook di git con dependabot
Agentic Workflows in GitHub
Ciclo di vita risorse con .NET Aspire
Utilizzare noopener e noreferrer nei link HTML


