Namespace: System.Runtime.Serialization In a very complex object creation scenario we may want to implement serialization our self. To do custom serialization one must apply the serialization attributes to the class in the same way and also class must implement ISerializable interface. Constructor to be implemented should look like: Protected <ClassName>(SerializationInfo si, StreamingContext sc) { productid = info.GetInt32(“Product ID”); productprice = info.GetInt32(“Price”); productQuantity = info.GetInt32(“Quantity”); total = productprice * productQuantity; } For Deserialization implement the method: [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)] public virtual void GetObjectData(SerializationInfo info, StreamContext contex...