Archiviazione persistente
È spesso necessario archiviare i valori dei campi di un oggetto nel disco per recuperarli in una fase successiva. Nonostante questa operazione sia facilmente eseguibile senza dover utilizzare la serializzazione, risulta spesso lenta, soggetta a errori e diventa progressivamente più complessa quando è necessario tracciare una gerarchia degli oggetti. Si supponga di creare una applicazione aziendale di grandi dimensioni contenente migliaia di oggetti e di dover scrivere il codice per salvare e ripristinare i campi e le proprietà da e nel disco per ogni oggetto. La serializzazione offre un comodo meccanismo per raggiungere questo obiettivo.
Common Language Runtime gestisce l'archiviazione degli oggetti in memoria e offre un meccanismo di serializzazione automatizzata mediante reflection. Quando un oggetto viene serializzato, il nome della classe, l'assembly e tutti i membri dati dell'istanza della classe vengono archiviati. Gli oggetti spesso archiviano riferimenti ad altre istanze nelle variabili membro. Quando la classe viene serializzata, il motore di serializzazione tiene traccia di tutti gli oggetti già serializzati a cui si fa riferimento per garantire che lo stesso oggetto non venga serializzato più di una volta. L'architettura di serializzazione disponibile in gestisce automaticamente e in modo corretto gli oggetti grafici e i riferimenti circolari. L'unico requisito per gli oggetti grafici è che tutti gli oggetti a cui l'oggetto serializzato fa riferimento siano contrassegnati come Serializable. Per ulteriori informazioni, vedere Serializzazione di base. Se questa condizione non viene soddisfatta, quando il serializzatore tenta di serializzare l'oggetto non contrassegnato verrà generata un'eccezione.
Quando la classe serializzata viene deserializzata, la classe verrà ricreata e i valori di tutti i membri dati verranno ripristinati automaticamente.
Vedere anche
Altre risorse
Nozioni di serializzazione
Oggetti remoti
Serializzazione XML e SOAP