Please share your view of **System.Runtime.Serialization**.

My questions and doubts are:

1. Class and all it's containing objects must have **[Serializable]** keyword on top of the class.
2. What if some object is of static type.
3. How Serialization handles static object.
4. How dll versioning affects the serialized object. (e.g. i have serialized one object and later uploaded new build on server in that case does there is any effect on previously serialized object.)

Thanks in advance.