SoapHeader Класс

Определение

В случае переопределения в производном классе представляет содержимое заголовка SOAP.

public ref class SoapHeader abstract
public abstract class SoapHeader
type SoapHeader = class
Public MustInherit Class SoapHeader
Наследование
SoapHeader
Производный

Примеры

MyWebService Следующая веб-служба XML определяет MyHeader заголовок SOAP и требует отправки с любыми вызовами MyWebMethod метода веб-службы XML. Кроме того, получает все заголовки SOAP, MyWebMethod отличные от заголовка 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

Комментарии

Заголовки SOAP предлагают метод передачи данных в метод веб-службы XML и из него, если данные не связаны напрямую с основными функциями метода веб-службы XML. Например, веб-служба XML может содержать несколько методов веб-службы XML, для каждого из которых требуется пользовательская схема проверки подлинности. Вместо добавления параметров к каждому методу веб-службы XML для пользовательской схемы проверки подлинности можно применять класс, SoapHeaderAttributeпроизводный от SoapHeaderкласса, к каждому методу веб-службы XML. Реализация класса, наследуемого от SoapHeader дескрипторов пользовательской схемы проверки подлинности. Таким образом, метод веб-службы XML реализует только функциональные возможности, характерные для него, и добавляет дополнительные функции с помощью заголовка SOAP.

В следующем списке описаны основные шаги по получению и обработке заголовка SOAP:

  1. Создайте класс, производный от SoapHeader представления данных, переданных в заголовок SOAP.

  2. Добавьте в класс элемент, реализующий веб-службу XML или прокси-класс клиента веб-службы XML, типа, созданного на первом шаге.

  3. SoapHeaderAttribute Примените к методу веб-службы XML или соответствующему методу в прокси-классе, указав элемент, созданный на втором шаге MemberName свойства.

  4. В методе веб-службы XML или клиентском коде веб-службы XML получите доступ к MemberName свойству для обработки данных, отправленных в заголовке SOAP.

Конструкторы

SoapHeader()

Инициализирует новый экземпляр класса SoapHeader.

Свойства

Actor

Получает или задает получателя для заголовка SOAP.

DidUnderstand

Получает или задает значение, указывающее, правильно ли обработан заголовок SOAP методом веб-службы XML.

EncodedMustUnderstand

Получает или задает значение XML-атрибута mustUnderstand для заголовка SOAP при взаимодействии по протоколу SOAP версии 1.1.

EncodedMustUnderstand12

Возвращает или задает значение атрибута XML mustUnderstand для заголовка SOAP при взаимодействии по протоколу SOAP версии 1.2.

EncodedRelay

Получает или задает атрибут "relay" заголовка SOAP 1.2.

MustUnderstand

Получает или задает значение, указывающее, должен ли быть понят заголовок SoapHeader.

Relay

Получает или задает значение, указывающее, должен ли заголовок SOAP ретранслироваться на следующий узел SOAP, если текущий узел не понимает заголовок.

Role

Получает или задает получателя для заголовка SOAP.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел