Agregar cabeceras SOAP entre mensajes

Para enviar informacion adicional al mensaje enviado entre servicios web existe una tecnica muy elegante que vale la pena mencionar;  esta tecnica consiste en enviar datos adicionales entre mensajes.  Para poder llevarlo es necesario que los datos a enviar sean enviados mediante una clase que herede de SoapHeader que se encuentra en System.Web.Services.Protocols, exponiendo sus metodos como publicos. Para completar la definicion del servicio web hay que agregar algun objeto en el servicio que la cabecera y ademas del atributo WebMethod es necesario agregar SoapHeader y como parametro del constructor del atributo el nombre del objeto que hereda de SoapHeader.

Ahora por la parte del cliente es muy sencillo pues el wsdl.exe expone la clase que hereda de SoapHeader entonces solo es necesario crear un objeto y configurar los miembros de la misma.