944 messaggi dal 11 febbraio 2013
Come posso impostare il file in modo che le property siano convertite nel corrispondente valore
di default quando sono null?

grazie
16 messaggi dal 06 marzo 2017
Ciao,
se ho ben capito più che il file devi agire nelle configuration quando cerchi di leggere quel valore, per esempio invece di

_configuration.GetValue<int>("ChiaveConNull");
prova

_configuration.GetValue<int?>("ChiaveConValoreNull").GetValueOrDefault();

dove _configuration è una istanza di Microsoft.Extensions.Configuration.IConfiguration
944 messaggi dal 11 febbraio 2013
ciao

non ho capito

dove va quella istanza?
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
non è che la domanda iniziale fosse molto chiara. Tu vuoi che quando il client invoca un'action della tua Web API e ti passa null come valore di una proprietà (o la omette del tutto), gli venga invece assegnato il valore di default?

Es. se ti inviano questo json:
{
  "username": "Mario",
  "enabled": null
}


Tu vuoi che "enabled", nonostante sia stato valorizzato a null, assuma un valore "true" quando WebAPI deserializza il tuo oggetto dal JSON?
Come hai indicato il valore di default che la proprietà "enabled" deve assumere?
Modificato da BrightSoul il 05 novembre 2018 22.26 -

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
Enabled: bool,
String: "",
Number:0
...

Perché è piu semplice lavorare con le proprietà anziché avere null

Sbaglio?

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Enabled: bool,


Intendi bool: false ?

Per bool e int non bisogna fare niente perché essendo dei value type non possono ammettere valori null. Per cui, se le proprietà di quel tipo sono valorizzate a null (o se sono omesse), resteranno sui rispettivi valori di default e cioè false e 0.

Le stringhe invece ammettono valori null. Se vuoi che il default sia una stringa vuota puoi fare questo:

Nel file App_Start/WebApiConfig.cs, aggiungi questa riga:
config.Formatters.JsonFormatter.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Populate;

E poi indica qual è il valore di default sulla proprietà stringa. Ad esempio:
public class MioDto
{
  [DefaultValue("")]
  public string Nome { get; set; }
}

Questo ti permetterà di indicare valori di default differenti e funzionerà anche per bool, int e gli altri tipi base.

ciao,
Moreno

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
Vedo ancora NULL ... ho fatto esattamente come hai detto
che sicuramente è corretto ....però non vedo cosa manca

L'unica cosa è che uso automapper ma non credo cambi nulla

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.