Esempio di tecnologia di serializzazione di base
In questo esempio viene illustrata la capacità di Common Language Runtime di serializzare in un flusso il grafico di un oggetto contenuto in memoria. Per la serializzazione, è possibile utilizzare l'oggetto SoapFormatter o BinaryFormatter. Un elenco collegato, contenente dati, viene serializzato in un flusso di file o deserializzato da tale flusso. In entrambi i casi l'elenco viene visualizzato per consentire di esaminare i risultati. L'elenco collegato è di tipo LinkedList
, un tipo definito in questo esempio.
Per ulteriori informazioni sulla serializzazione, vedere i commenti nei file di codice sorgente e build.proj.
Per compilare l'esempio utilizzando il prompt dei comandi
Spostarsi in una delle sottodirectory specifiche del linguaggio della directory Technologies\Serialization\Runtime Serialization\Basic utilizzando il prompt dei comandi.
Dalla riga di comando digitare msbuild SerializationCS.sln, msbuild SerializationJSL.sln o msbuild SerializationVB.sln, a seconda del linguaggio di programmazione che si desidera utilizzare.
Per compilare l'esempio utilizzando Visual Studio
Aprire Esplora risorse, quindi spostarsi in una delle sottodirectory specifiche del linguaggio relative all'esempio.
Fare doppio clic sull'icona relativa a SerializationCS.sln, SerializationJSL.sln o SerializationVB.sln, a seconda del linguaggio di programmazione che si desidera utilizzare, per aprire il file in Visual Studio.
Scegliere Compila soluzione dal menu Compila.
L'applicazione verrà compilata nella sottodirectory predefinita \bin o \bin\Debug.
Per eseguire l’esempio
Spostarsi nella directory contenente l'eseguibile compilato.
Digitare Serialization.exe, con i valori di parametro desiderati, dalla riga di comando.
Nota: L'esempio compila un'applicazione console. Per visualizzare l'output dell'applicazione, è necessario avviarla dalla finestra del prompt dei comandi.
Osservazioni
L'applicazione di esempio accetta parametri della riga di comando che indicano il test da eseguire. Per serializzare un elenco costituito da 10 nodi in un file denominato Test.xml mediante il formattatore SOAP, utilizzare i parametri sx Test.xml 10.
Di seguito è riportato un esempio:
Serialize.exe -sx Test.xml 10
Per deserializzare il file Test.xml dell'esempio precedente, utilizzare i parametri dx Test.xml.
Di seguito è riportato un esempio:
Serialize.exe -dx Test.xml
Nei due esempi precedenti, la lettera "x" nell'opzione della riga di comando indica che si desidera utilizzare la serializzazione SOAP XML. Per utilizzare la serializzazione binaria, è possibile utilizzare la lettera "b". Se si desidera eseguire la serializzazione con un numero di nodi molto elevato, può essere opportuno reindirizzare l'output della console in un file.
Di seguito è riportato un esempio:
Serialize.exe -sb Test.bin 10000 >somefile.txt
Nell'elenco riportato di seguito vengono descritte in modo sintetico le classi e le tecnologie utilizzate nell'esempio.
Serializzazione in fase di esecuzione
IFormatter - Consente di fare riferimento a un oggetto BinaryFormatter o SoapFormatter.
BinaryFormatter - Consente di serializzare un elenco collegato in un flusso in formato binario. Il formattatore binario utilizza un formato riconosciuto solo dal tipo BinaryFormatter. Tuttavia, i dati sono concisi.
SoapFormatter - Consente di serializzare un elenco collegato in un flusso in formato SOAP, che è un formato standard.
I/O flusso
Stream - Consente di eseguire la serializzazione e la deserializzazione. Il tipo di flusso specifico utilizzato in questo esempio è FileStream. È tuttavia possibile utilizzare la serializzazione con qualsiasi tipo derivato da Stream.
File - Consente di creare oggetti FileStream per la lettura e la creazione di file su disco.
FileStream - Consente di eseguire la serializzazione e la deserializzazione di elenchi collegati.
Vedere anche
Riferimento
Classe BinaryFormatter
Classe File
Classe FileStream
Interfaccia IFormatter
Classe Random
Attributo SerializableAttribute
Classe SoapFormatter
Classe Stream
Spazio dei nomi System.IO
Spazio dei nomi System.Runtime.Serialization
Spazio dei nomi System.Xml.Serialization
Concetti
Serializzazione di base
Controllo della serializzazione XML mediante attributi
Introduzione alla serializzazione XML
Altre risorse
Serializzazione binaria
Serializzazione
SOAP Service
Serializzazione SOAP e XML
Data di compilazione: 2010-03-10