Condividi tramite


SoapHeader Classe

Definizione

Quando se ne effettua l'override in una classe derivata, rappresenta il contenuto di un'intestazione SOAP.

public ref class SoapHeader abstract
public abstract class SoapHeader
type SoapHeader = class
Public MustInherit Class SoapHeader
Ereditarietà
SoapHeader
Derivato

Esempio

Il servizio Web XML seguente MyWebService definisce l'intestazione MyHeader SOAP e richiede che venga inviato con qualsiasi chiamata al metodo del MyWebMethod servizio Web XML. Inoltre, MyWebMethod riceve eventuali intestazioni SOAP diverse dall'intestazione MyHeader SOAP.

<%@ 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";
    }
}
<%@ 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

Commenti

Le intestazioni SOAP offrono un metodo per passare i dati a e da un metodo di servizio Web XML se i dati non sono direttamente correlati alla funzionalità primaria del metodo del servizio Web XML. Ad esempio, un servizio Web XML potrebbe contenere diversi metodi di servizio Web XML che richiedono uno schema di autenticazione personalizzato. Anziché aggiungere parametri a ogni metodo di servizio Web XML per lo schema di autenticazione personalizzato, un SoapHeaderAttributeoggetto , che fa riferimento a una classe derivata da SoapHeader, può essere applicata a ogni metodo di servizio Web XML. L'implementazione per la classe derivata da SoapHeader gestisce lo schema di autenticazione personalizzato. In questo modo, il metodo del servizio Web XML implementa solo le funzionalità specifiche e aggiunge funzionalità aggiuntive usando un'intestazione SOAP.

L'elenco seguente illustra i passaggi di base per la ricezione e l'elaborazione di un'intestazione SOAP:

  1. Creare una classe che deriva da SoapHeader che rappresenta i dati passati nell'intestazione SOAP.

  2. Aggiungere un membro alla classe che implementa un servizio Web XML o una classe proxy client del servizio Web XML, del tipo creato nel primo passaggio.

  3. Applicare un SoapHeaderAttribute oggetto al metodo del servizio Web XML o al metodo corrispondente nella classe proxy, specificando il membro creato nel secondo passaggio della MemberName proprietà.

  4. All'interno del metodo del servizio Web XML o del codice client del servizio Web XML, accedere alla MemberName proprietà per elaborare i dati inviati nell'intestazione SOAP.

Costruttori

SoapHeader()

Inizializza una nuova istanza della classe SoapHeader.

Proprietà

Actor

Ottiene o imposta il destinatario dell'intestazione SOAP.

DidUnderstand

Ottiene o imposta un valore che indica se un metodo di servizio Web XML ha elaborato correttamente un'intestazione SOAP.

EncodedMustUnderstand

Ottiene o imposta il valore dell'attributo XML mustUnderstand per l'intestazione SOAP quando in comunicazione con il protocollo SOAP 1.1.

EncodedMustUnderstand12

Ottiene o imposta il valore dell'attributo XML mustUnderstand per l'intestazione SOAP durante la comunicazione con il protocollo SOAP 1.2.

EncodedRelay

Ottiene o imposta l'attributo "relay" dell'intestazione SOAP 1.2.

MustUnderstand

Ottiene o imposta un valore che indica se l'oggetto SoapHeader deve essere riconosciuto.

Relay

Ottiene o imposta un valore che indica se l'intestazione SOAP deve essere inoltrata al successivo nodo SOAP se il nodo corrente non riconosce l'intestazione.

Role

Ottiene o imposta il destinatario dell'intestazione SOAP.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche