Versión imprimible       Enviar     
Evaluar y enviar comentarios

  Encender vista de ancho de banda bajo
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
SoapHeader (Clase)
Cuando se reemplaza en una clase derivada, representa el contenido de un encabezado SOAP.

Espacio de nombres: System.Web.Services.Protocols
Ensamblado: System.Web.Services (en system.web.services.dll)

Visual Basic (Declaración)
Public MustInherit Class SoapHeader
Visual Basic (Uso)
Dim instance As SoapHeader
C#
public abstract class SoapHeader
C++
public ref class SoapHeader abstract
J#
public abstract class SoapHeader
JScript
public abstract class SoapHeader
XAML
No aplicable.

Los encabezados SOAP proporcionan un método para pasar datos a un método de servicios Web XML y obtener datos del mismo, siempre y cuando los datos no estén directamente relacionados con la funcionalidad principal del método de servicios Web XML. Por ejemplo, un servicio Web XML puede contener varios métodos de servicios Web XML, cada uno de los cuales puede requerir un esquema de autenticación personalizado. En lugar de agregar parámetros a cada método de servicios Web XML para el esquema de autenticación personalizado, a cada método de servicios Web XML se le puede aplicar SoapHeaderAttribute, que hace referencia a una clase derivada de SoapHeader. La implementación de la clase derivada de SoapHeader controla el esquema de autenticación personalizado. De este modo, el método de servicios Web XML sólo implementa la funcionalidad específica del método y agrega funcionalidades adicionales utilizando un encabezado SOAP.

En la siguiente lista se describen los pasos básicos que hay que llevar a cabo para recibir y procesar un encabezado SOAP:

  1. Cree una clase derivada de SoapHeader que represente los datos pasados al encabezado SOAP.

  2. Agregue un miembro a la clase que implementa un servicio Web XML o una clase de proxy cliente de servicios Web XML; el miembro debe ser del mismo tipo que el creado en el primer paso.

  3. Aplique SoapHeaderAttribute al método de servicios Web XML o al método correspondiente de la clase de proxy, especificando el miembro creado en el segundo paso en la propiedad MemberName.

  4. Dentro del método de servicios Web XML o del código de cliente de servicios Web XML, obtenga acceso a la propiedad MemberName para procesar los datos enviados en el encabezado SOAP.

El siguiente servicio Web XML MyWebService define el encabezado SOAP MyHeader y precisa que éste se envíe en todas las llamadas al método de servicio Web XML MyWebMethod. Además, MyWebMethod recibe cualquier encabezado SOAP distinto del encabezado SOAP MyHeader.

Visual Basic
<%@ WebService Language="VB" Class="MyWebService"%>

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml
Imports System

' Define a SOAP header by deriving from the SoapHeader base class.
Public Class MyHeader
    Inherits SoapHeader
    Public MyValue As String
End Class

Public Class MyWebService
    
    Public theHeader As MyHeader
    ' Receive all SOAP headers besides the MyHeader SOAP header.
    Public unknownHeaders() As SoapUnknownHeader    

    'Receive any SOAP headers other than MyHeader.    
    <WebMethod, _
     SoapHeader("theHeader", Direction := SoapHeaderDirection.InOut), _
     SoapHeader("unknownHeaders")> _
    Public Function MyWebMethod() As String
                
        Dim header As SoapUnknownHeader
        For Each header In unknownHeaders
            ' Perform some processing on the header.
            If header.Element.Name = "MyKnownHeader" Then
                header.DidUnderstand = True
            Else
                ' For those headers that cannot be
                ' processed, set the DidUnderstand propert to false.
                header.DidUnderstand = False
            End If
        Next header
        Return "Hello"
    End Function
    
End Class

C#
<%@ WebService Language="C#" Class="MyWebService"%>
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml;
using System;

// Define a SOAP header by deriving from the SoapHeader base class.

public class MyHeader : SoapHeader {
    public string MyValue;
}

public class MyWebService {

    public MyHeader myHeader;
    // Receive all SOAP headers besides the MyHeader SOAP header.
    public SoapUnknownHeader[] unknownHeaders;
 
    [WebMethod]
    [SoapHeader("myHeader", Direction=SoapHeaderDirection.InOut)]

    //Receive any SOAP headers other than MyHeader.
    [SoapHeader("unknownHeaders",Required=false)]

    public string MyWebMethod() {

       foreach (SoapUnknownHeader header in unknownHeaders) {
           // Perform some processing on the header.
       if (header.Element.Name == "MyKnownHeader")
               header.DidUnderstand = true;
       else
                // For those headers that cannot be  
                // processed, set the DidUnderstand property to false.
                header.DidUnderstand = false;
       }
       return "Hello";
    }
}

System.Object
  System.Web.Services.Protocols.SoapHeader
     System.Web.Services.Protocols.SoapUnknownHeader
Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
© 2009 Microsoft Corporation. Reservados todos los derechos. Términos de uso  |  Marcas Registradas  |  Privacidad
Page view tracker