How to do singleton serialization in C#?
<p>I go to the MSDN to search the <strong>singleton serialization</strong>, and find the source code <a href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.serializationinfo.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/system.runtime.serialization.serializationinfo.aspx</a>
but I had problems when I changed some part of the code. I divide it into two program : serialization and deserialization. Below is the Main function of the two(other classes are in the msdn documentation, link is at the second line).
Serialization program is below:</p>

<pre><code>    public static void Main()
    {
    FileStream fs = new FileStream("DataFile.dat", FileMode.Create);

    try 
    {
        // Construct a BinaryFormatter and use it 
        // to serialize the data to the stream.
        BinaryFormatter formatter = new BinaryFormatter();

        // Create an array with multiple elements refering to 
        // the one Singleton object.
        Singleton[] a1 = { Singleton.GetSingleton(), Singleton.GetSingleton() };

        a1[0].SomeNumber = 555;

        formatter.Serialize(fs, a1);

    }   
    catch (SerializationException e) 
    {
        Console.WriteLine("Failed to serialize. Reason: " + e.Message);
        throw;
    }
    finally 
    {
        fs.Close();
    }
    }
</code></pre>

<p>Deserialization program:</p>

<pre><code>    public static void Main()
    {
    FileStream fs = new FileStream("DataFile.dat", FileMode.Open);

    try 
    {
        // Construct a BinaryFormatter and use it 
        // to serialize the data to the stream.
        BinaryFormatter formatter = new BinaryFormatter();


        Singleton[] a2 = (Singleton[]) formatter.Deserialize(fs);

        // This displays "True".
        Console.WriteLine(a2[0].SomeNumber);
    }   
    catch (SerializationException e) 
    {
        Console.WriteLine("Failed to serialize. Reason: " + e.Message);
        throw;
    }
    finally 
    {
        fs.Close();
    }
    }
</code></pre>

<p>After I executed the two program, the console didn't print 555 but still 123, why? I can't figure it out and got stuck in it for the whole day, can anybody help me ? </p>
