BinaryFormatter.Serialize Method (Stream, Object)
.NET Framework (current version)
Serializes the object, or graph of objects with the specified top (root), to the given stream.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- serializationStream
-
Type:
System.IO.Stream
The stream to which the graph is to be serialized.
- graph
-
Type:
System.Object
The object at the root of the graph to serialize.
Implements
IFormatter.Serialize(Stream, Object)| Exception | Condition |
|---|---|
| ArgumentNullException | The serializationStream is null. -or- The graph is null. |
| SerializationException | An error has occurred during serialization, such as if an object in the graph parameter is not marked as serializable. |
| SecurityException | The caller does not have the required permission. |
using System; using System.IO; using System.Collections; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization; public class App { [STAThread] static void Main() { Serialize(); Deserialize(); } static void Serialize() { // 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.Message); throw; } finally { fs.Close(); } } static void Deserialize() { // 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.Message); throw; } finally { fs.Close(); } // To prove that the table deserialized correctly, // display the key/value pairs. foreach (DictionaryEntry de in addresses) { Console.WriteLine("{0} lives at {1}.", de.Key, de.Value); } } }
SecurityPermission
To provide serialization services. Associated enumeration: SecurityPermissionFlag.SerializationFormatter.
.NET Framework
Available since 1.1
Available since 1.1
Show: