I have Class A. Class B and Class C are part of Class A.
Class A
{
//Few Properties of Class A
List list1 = new List()
Do you need to use XML as the representation? You may want to consider binary representations as well, which are usually faster and more compact. You have the BinaryFormatter that comes built in, or even better you can use protocol buffers that is blazing fast and super compact. If you need XML you may want to think whether you want to support some kind of interoperability with other languages and technologies or even platforms. If it is only C# to c# both the XmlSerializer for Xml or the BinaryFormatter are fine. If you are going to interact with Javascript you may consider using JSON (You can try JSON.NET. Also, if you want to support Windows Phone or other more constrained devices you, it may just be easier to use the XmlSerializer that works anywhere.
Finally, you may prefer to just have a common infrastructure and support many serialization mechanisms and transports. Microsoft offers a wonderful (albeit a bit slow) solution in WCF. Perhaps if you say more about your system's requirements, it will be easier to suggest an implementation. The good thing is that you have plenty of options.