Tra le varie novità di .NET 7, una gradita introduzione è stata l'interfaccia IParsable
public record Money(string Currency, decimal Value) : IParsable<Money> { // altro codice qui... public override string ToString() { return $"Currency: {Currency} - Value: {Value}"; } }
Possiamo implementare l'interfaccia IParsable con il codice seguente, in modo da convertire facilmente una string in un oggetto Money:
public static Money Parse(string? value, IFormatProvider? provider) { var tokens = value?.Split(' '); if (tokens?.Length != 2) { throw new ArgumentException("Money must be in the format '{Currency} {Value}'."); } return new Money(tokens[0], decimal.Parse(tokens[1], provider)); } public static bool TryParse(string? value, IFormatProvider? provider, out Money result) { try { result = Money.Parse(value, provider); return true; } catch (Exception) { result = default; return false; } }
A questo punto, possiamo utilizzare il nostro tipo Money in una qualsiasi action, esattamente come faremmo con una string o un int, dato che ASP.NET Core invocherà automaticamente il nostro metodo TryParse per provare a convertire il valore in query string nell'oggetto vero e proprio:
[HttpGet] public IActionResult Get(Money amount) { return this.Ok(amount); }
![](https://www.aspitalia.com/script/images/1437.jpg)
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Definire stili a livello di libreria in Angular
Creare alias per tipi generici e tuple in C#
Utilizzare le collection expression in C#
Eseguire attività basate su eventi con Azure Container Jobs
Gestire undefined e partial nelle reactive forms di Angular
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Creare un webhook in Azure DevOps
Evitare la script injection nelle GitHub Actions
Load test di ASP.NET Core con k6
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Eseguire una query su SQL Azure tramite un workflow di GitHub
Migliorare la sicurezza dei prompt con Azure AI Studio