There are two separate mechanisms provided by the .NET class library – XmlSerializer and SoapFormatter/BinaryFormatter.Microsoft uses XmlSerializer for Web Services, and uses SoapFormatter/BinaryFormatter for remoting. Both are available for use in your own code.