Serializzare / Deserializzare una data Nullable [c#]

Lavorando con file XML che vengono serializzati e deserializzati si a ha spesso a che fare con campi di tipo date con valori nullable o più semplicemente con valori non presenti per un qualsiasi motivo.

La situazione è gestita come eccezione durante la lettura e può causare problemi.

Usando lo spazio dei nomi System.Xml.Serialization si può incontrare e risolvere il problema durante il processo di serializzazione e deserializzazione.

Ecco il problema, il codice seguente è un datetime nullable, che va bene in .NET

private DateTime? _nullableData;

[XmlAttribute] public DateTime? nullableData 
{ 
     get { 
            return _nullableData; 
      } 

     set { 
           _nullableData= value; 
      } 
}

 

Quando si arriva alla serializzazione / deserializzazione, si riscontra un errore di:

System.InvalidOperationException: Cannot serialize member ‘DOB’ of type System.Nullable`1[System.DateTime]. XmlAttribute/XmlText cannot be used to encode complex types.

Un modo per risolvere il problema è quello di memorizzare la data usando una stringa e poi pre-elaborare la data e quindi memorizzarla nel campo della data nullable, in questo modo:

private DateTime? _nullableData; 

[XmlIgnore] 
public DateTime? nullableData 
{ 
    get { return _nullableData; } 
    set { _nullableData = value; } 
} 

[XmlAttribute(“nullableData”)] 
public string nullableDataString 
{ 
    get { 
        return nullableData.HasValue ? XmlConvert.ToString(nullableData.Value, XmlDateTimeSerializationMode.Unspecified) : string.Empty; 
        } 
    
    set { 
        nullableData = !string.IsNullOrEmpty(value) ? XmlConvert.ToDateTime(value, XmlDateTimeSerializationMode.Unspecified) : (DateTime?) null; 
    } 
}

 

Base64 Encode e Decode di una stringa [c#]

Encode

public static string Base64Encode(string plainText) 
{
  var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
  return System.Convert.ToBase64String(plainTextBytes);
}

Decode

public static string Base64Decode(string base64EncodedData) 
{
  var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
  return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}

Leggi tutto “Base64 Encode e Decode di una stringa [c#]”

Problemi tecnici per Binance

Binance Giù per giorni

Se siete utilizzatori di Binance sicuramente avete notato che il noto exchange da alcuni giorni non stava funzionando correttamente. In realtà il sito è giù da diverso tempo.

Viste le brutte esperienze avute in passato in molti, soprattutto chi ha degli account con un certo valore, ha temuto un possibile attacco hacker con conseguente perdita dei depositi degli utenti. Leggi tutto “Problemi tecnici per Binance”

Amazon ed il brevetto sui braccialetti elettronici

Magazzino Amazon

In questi giorni i titoli di blog e giornali sono tutti per la notizia secondo la quale Amazon avrebbe pensato di utilizzare per i suoi dipendenti dei braccialetti elettronici appositamente brevettati che ne traccerebbero gli spostamenti in palese violazione di qualsiasi legge sulla privacy e qualsiasi accordo sui diritti dei lavoratori. I titoloni parlano chiaro Leggi tutto “Amazon ed il brevetto sui braccialetti elettronici”

Rimuovere il messaggio “Briefly unavailable for scheduled maintenance. Check back in a minute” da WordPress

La procedura di aggiornamento di WordPress e dei suoi plugin ormai è divenuta una operazione semplice ed indolore.

Può comunque capitare che ci siano degli inconvenienti di qualunque tipo che possono bloccare la procedura e creino nel sistema uno stato inconsistente. Leggi tutto “Rimuovere il messaggio “Briefly unavailable for scheduled maintenance. Check back in a minute” da WordPress”