NMath User's Guide

TOC | Previous | Next | Index

36.1 Binary Serialization (.NET, C#, CSharp, VB, Visual Basic, F#)

The System.Runtime.Serialization.Formatters.Binary.BinaryFormatter class provides Serialize() and Deserialize() methods for persisting an object in binary format to a given stream. For example, this code serializes two FloatComplexMatrix objects to a file:

Code Example – C# binary serialization

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

var A =
   new FloatComplexMatrix( "2x2[ (5,9.8) (-6,.9) (7,-8) (8,8) ]" );
var B = new FloatComplexMatrix( 4, 4, .1F, .1F );

FileStream binStream = File.Create( "myData.dat" );
var binFormatter = new BinaryFormatter();

binFormatter.Serialize( binStream, A );
binFormatter.Serialize( binStream, B );

binStream.Close();

Code Example – VB binary serialization

Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary

Dim A As New FloatComplexMatrix(
  "2x2[ (5,9.8) (-6,.9) (7,-8) (8,8) ]")
Dim B As New FloatComplexMatrix(4, 4, 0.1F, 0.1F)

Dim BinStream As FileStream = File.Create("myData.dat")
Dim BinFormatter As New BinaryFormatter()

BinFormatter.Serialize(BinStream, A)
BinFormatter.Serialize(BinStream, B)

BinStream.Close()

This code restores the objects from the file:

Code Example – C# binary serialization

binStream = File.OpenRead( "myData.dat" );

FloatComplexMatrix A2 =
   (FloatComplexMatrix)binFormatter.Deserialize( binStream );
FloatComplexMatrix B2 = 
   (FloatComplexMatrix)binFormatter.Deserialize( binStream );

binStream.Close();
File.Delete( "myData.dat" );

Code Example – VB binary serialization

BinStream = File.OpenRead("myData.dat")

Dim A2 = CType(BinFormatter.Deserialize(BinStream), 
  FloatComplexMatrix)
Dim B2 = CType(BinFormatter.Deserialize(BinStream), 
  FloatComplexMatrix)

BinStream.Close()
File.Delete("myData.dat")

Top

Top