XML serialization has some limitations. It converts public property values and fields, but does not encode type information. Also it does not encode private properties and fields, which requires binary serialization. Any class to be serialized to XML must have a public, parameterless constructor. One advantage of XML serialization is that the serialized data, being XML, rarely has any problems passing over networks and through security measures, such as firewalls, that might be unhappy with a binary data stream. For this reason, XML serialization is used by .Net Web services. Another advantage is that XML serialization is not platform-specific. In other words, you do not have to have .Net or Windows on both ends of the process.