Поделиться через


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

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

EncodedMustUnderstand

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

EncodedMustUnderstand12

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

EncodedRelay

Возвращает или задает атрибут ретрансляции заголовка SOAP 1.2.

MustUnderstand

Возвращает или задает значение, указывающее, следует ли SoapHeader понимать его.

Relay

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

Role

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

Методы

Имя Описание
Equals(Object)

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

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

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

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

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

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

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

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

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

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

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

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