BinaryFormatter.Deserialize Method (Stream)
.NET Framework 3.0
Deserializes the specified stream into an object graph.
Namespace: System.Runtime.Serialization.Formatters.Binary
Assembly: mscorlib (in mscorlib.dll)
Assembly: mscorlib (in mscorlib.dll)
using namespace System; using namespace System::IO; using namespace System::Collections; using namespace System::Runtime::Serialization::Formatters::Binary; using namespace System::Runtime::Serialization; ref class App { public: static void Serialize() { // Create a hashtable of values that will eventually be serialized. Hashtable^ addresses = gcnew Hashtable; addresses->Add( "Jeff", "123 Main Street, Redmond, WA 98052" ); addresses->Add( "Fred", "987 Pine Road, Phila., PA 19116" ); addresses->Add( "Mary", "PO Box 112233, Palo Alto, CA 94301" ); // To serialize the hashtable (and its keys/values), // you must first open a stream for writing. // In this case we will use a file stream. FileStream^ fs = gcnew FileStream( "DataFile.dat",FileMode::Create ); // Construct a BinaryFormatter and use it to serialize the data to the stream. BinaryFormatter^ formatter = gcnew BinaryFormatter; try { formatter->Serialize( fs, addresses ); } catch ( SerializationException^ e ) { Console::WriteLine( "Failed to serialize. Reason: {0}", e->Message ); throw; } finally { fs->Close(); } } static void Deserialize() { // Declare the hashtable reference. Hashtable^ addresses = nullptr; // Open the file containing the data that we want to deserialize. FileStream^ fs = gcnew FileStream( "DataFile.dat",FileMode::Open ); try { BinaryFormatter^ formatter = gcnew BinaryFormatter; // Deserialize the hashtable from the file and // assign the reference to our local variable. addresses = dynamic_cast<Hashtable^>(formatter->Deserialize( fs )); } catch ( SerializationException^ e ) { Console::WriteLine( "Failed to deserialize. Reason: {0}", e->Message ); throw; } finally { fs->Close(); } // To prove that the table deserialized correctly, display the keys/values. IEnumerator^ myEnum = addresses->GetEnumerator(); while ( myEnum->MoveNext() ) { DictionaryEntry ^ de = safe_cast<DictionaryEntry ^>(myEnum->Current); Console::WriteLine( " {0} lives at {1}.", de->Key, de->Value ); } } }; [STAThread] int main() { App::Serialize(); App::Deserialize(); return 0; }
import System.*;
import System.IO.*;
import System.Collections.*;
import System.Runtime.Serialization.Formatters.Binary.*;
import System.Runtime.Serialization.*;
public class App
{
/** @attribute STAThread()
*/
public static void main(String[] args) throws SerializationException
{
Serialize();
Deserialize();
} //main
static void Serialize() throws SerializationException
{
// Create a hashtable of values that will eventually be serialized.
Hashtable addresses = new Hashtable();
addresses.Add("Jeff", "123 Main Street, Redmond, WA 98052");
addresses.Add("Fred", "987 Pine Road, Phila., PA 19116");
addresses.Add("Mary", "PO Box 112233, Palo Alto, CA 94301");
// To serialize the hashtable and its key/value pairs,
// you must first open a stream for writing.
// In this case, use a file stream.
FileStream fs = new FileStream("DataFile.dat", FileMode.Create);
// Construct a BinaryFormatter and use it to serialize the data to the
// stream.
BinaryFormatter formatter = new BinaryFormatter();
try {
formatter.Serialize(fs, addresses);
}
catch (SerializationException e) {
Console.WriteLine("Failed to serialize. Reason: "
+ e.get_Message());
throw e;
}
finally {
fs.Close();
}
} //Serialize
static void Deserialize() throws SerializationException
{
// Declare the hashtable reference.
Hashtable addresses = null;
// Open the file containing the data that you want to deserialize.
FileStream fs = new FileStream("DataFile.dat", FileMode.Open);
try {
BinaryFormatter formatter = new BinaryFormatter();
// Deserialize the hashtable from the file and
// assign the reference to the local variable.
addresses = (Hashtable)(formatter.Deserialize(fs));
}
catch (SerializationException e) {
Console.WriteLine("Failed to deserialize. Reason: "
+ e.get_Message());
throw e;
}
finally {
fs.Close();
}
// To prove that the table deserialized correctly,
// display the key/value pairs.
IEnumerator objEnum = addresses.GetEnumerator();
while (objEnum.MoveNext()) {
DictionaryEntry de = (DictionaryEntry)objEnum.get_Current();
Console.WriteLine("{0} lives at {1}.", de.get_Key(),
de.get_Value());
}
} //Deserialize
} //App
- SecurityPermission To provide serialization services. Associated enumeration: SecurityPermissionFlag.SerializationFormatter.
Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.Community Additions
ADD
Show: