Serializzazione e Deserializzazione di una classe

Con il termine serializzare una classe si intende un processo di “conversione” di un oggetto (classe ad esempio) in una sequenza di byte al fine di conservarne lo stato in memoria, ad esempio su file; vediamo come è possibile serializzare su file la classe clsCredential contenente una username e password (chiaramente a solo scopo didattico, non è per niente sicuro serializzare in questo modo le credenziali!):

Prima di tutto creo la mia classe con l’attributo [Serializable] e le due proprietà in lettura/scrittura:
[Serializable]
public class clsCredential
{
   public String UserName { get; set; }
   public String Password { get; set; }
}
 
Quindi implemento i metodi di serializzazione e deserializzazione:
public Boolean Serializza(Object Class, String FileName)
{  
   bool rVal = true;
 
   MemoryStream msDeserializza = new MemoryStream();  
   BinaryFormatter bfDeserializza = new BinaryFormatter();
 
   using (FileStream fs = new FileStream(FileName, FileMode.OpenOrCreate))  
   {     
      try     
      {         
         bfDeserializza.Serialize(msDeserializza, Class);        
         msDeserializza.WriteTo(fs);     
      }     
      catch (Exception ex)     
      {           
         rVal = false;     
      }     
      finally     
      {        
         fs.Close();     
      }  
    }
 }
 
public Object Deserializza(string NomeFile)
{  
   using (FileStream fsSerializza = new FileStream(NomeFile, FileMode.Open))  
   {     
      BinaryFormatter bfSerializza = new BinaryFormatter();
 
      try     
      {        
         fsSerializza.Seek(0, SeekOrigin.Begin);        
         return (Object)bfSerializza.Deserialize(fsSerializza);     
      }     
      catch     
      {        
         return null;     
      }     
      finally     
      {        
         fsSerializza.Close();     
      }  
   }
}


Download code

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *