Using SOAP in .NET
Serialization refers to the process of transforming data from an object instance in memory into a structured representation of that data in a stream. Serialization allows you to preserve the state of an application's objects, whether to simply save the data you're working with or to transmit the data to another application. By using the .NET framework to serialize an object to a stream, you can avoid much of the tedium of hand-coding the logic of reading each field from the object and writing its data to the stream. In .NET you can take advantage of SOAP serialization, runtime serialization and XML serialization.
Read about all of these serialization methods available to you with .NET in Chapter of .NET and XML from O'Reilly Media.
Using SOAP headers in XML Web service clients is simple thanks to the way that Visual Studio .NET generates the client proxy. When processing the service description (WSDL) file for the ValidatorService XML Web service, Visual Studio .NET identifies that a SOAP header is required by the Web method. In addition to generating the proxy class, Visual Studio .NET generates a class that represents the SOAP header.
For a walk through of using custom SOAP headers in XML web services in .NET, read Chapter of Microsoft .NET XML Web Services Step by Step from Microsoft Press.