Specify NonSerialized fields in CSharp

Description

The following code shows how to specify NonSerialized fields.

Example


using System;/*from  w w  w  . j  a v  a2s .c  o  m*/
using System.IO;
using System.Collections;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
public class MyElement
{
    public MyElement(string name)
    {
        this.name = name;
        this.cacheValue = 15;
    }
    public override string ToString()
    {
        return(String.Format("{0}: {1}", name, cacheValue));
    }
    string name;

    [NonSerialized]
    int cacheValue;
}

class MainClass
{
    public static void Main()
    {
        MyElement ele = new MyElement("name");

        Console.WriteLine("Initial value");
        Console.WriteLine("{0}", ele);
        
        // write to binary, read it back
        Stream streamWrite = File.Create("MyElement.bin");
        BinaryFormatter binaryWrite = new BinaryFormatter();
        binaryWrite.Serialize(streamWrite, ele);
        streamWrite.Close();
        
        Stream streamRead = File.OpenRead("MyElement.bin");
        BinaryFormatter binaryRead = new BinaryFormatter();
        MyElement element = (MyElement) binaryRead.Deserialize(streamRead);
        streamRead.Close();
        
        Console.WriteLine("Values after binary serialization");
        Console.WriteLine("{0}", element);
        
    }
}

The code above generates the following result.





















Home »
  C# Tutorial »
    IO »




File Attribute
File Security
Directory Attribute
Directory Recursive
Binary File
Text Field
Buffered IO
Create Copy Delete Move
CSV
Drive
File System Watcher
Isolated Storage
MemoryStream
Serialize
Zip