Serialization :

Serialization is the process of saving the state of an object in a persistent storage media by converting the object to a linear stream of bytes.
The object can be persisted to a file, a database or even in the memory
The following are the basic advantages of serialization:
-          Facilitate the transportation of an object through a network
-          Create a clone of an object
Serialization can be of the following types:
         Binary Serialization
        SOAP Serialization
        XML Serialization
        Custom Serialization
Singleton Class :

A singleton is a class which only allows a single instance of itself to be created, and usually gives simple access to that instance.
public sealed class Singleton{
    static Singleton instance=null;
    static readonly object padlock = new object();
   Singleton()    {    }
    public static Singleton Instance    {
        get {
            lock (padlock)
            {
                if (instance==null) {  instance = new Singleton();}
                return instance;
           } }    } }

Static Class


Static classes can not be instantiated.
Static classes are sealed so they can not be inherited.
Only static members are allowed.
Static classes can only have static constructor to initialize static members.

EX : Public static class MyStaticClass
{
Private static int _staticVariable;
Public static int staticVariable;
{
Get
{
Return _staticVariable;
}
Set
{
_staticVariable = value;
}
}
Public static void Function()
{
}
}Public static class MyStaticClass
{
Private static int _staticVariable;
Public static int staticVariable;
{
Get
{
Return _staticVariable;
}
Set
{
_staticVariable = value;
}
}
Public static void Function()
{
}
}
Sealed Class :
Once a class is defined as sealed class, this class cannot be inherited.
If you have ever noticed, structs are sealed. You cannot derive a class from a struct. 
One of the best usage of sealed classes is when you have a class with static members

public sealed class MySingleton {
public static readonly MySingleton Instance = new MySingleton();
private MySingleton(){ }
}