The System.Web.Services.Protocols namespace contains types that support communication between a client and a web service. The types define protocols that encode and transmit data across an Internet connection, including HTTP GET, HTTP POST, and SOAP.
The primary use of these types is to support the proxy class that manages the communication between web service and client. You can create this proxy class automatically by using the Visual Studio .NET IDE or the WSDL.exe command-line utility, or you can code it by hand. This class will inherit from HttpGetClientProtocol, HttpPostClientProtocol, or SoapHttpClientProtocol (which is the most common choice and the default for automatically generated proxy classes). Other important types in this namespace include the attributes that you use to set the encoding for SOAP request and response messages, such as SoapDocumentMethodAttribute.
This class also provides types you can use to create SOAP extensions. Typically, SOAP extensions are used to directly access the SOAP messages exchanged between web services and clients before they are sent or deserialized into objects. The SoapExtension class and SoapExtensionAttribute are the basic building blocks for SOAP extensions. You can also use SoapHeader and SoapHeaderAttribute classes to create custom SOAP headers for your message. You can then create web service methods that require specific custom SOAP headers. Figures Figure 34-1 and Figure 34-2 show the types in this namespace.