This question comes up frequently in the dotnet.xml newsgroup. Here's an article that may help to pick the correct one.
There is quite a bit of confusion when developers new to .NET try to serialize objects to XML. There are two serializers available to do the job, but neither one offers a universal solution. The first one is the XmlSerializer in the System.Xml.Serialization namespace. The XmlSerializer should have probably been named something like XmlObjectBinder because it's primary intent is to bind strongly structured XML data to .NET objects, not serialize objects for persistant storage.