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:
Создайте класс, производный от SoapHeader представления данных, передаваемых в заголовок SOAP.
Добавьте члена в класс, реализующий веб-службу XML или прокси-класс клиента веб-службы XML, типа, созданного на первом шаге.
SoapHeaderAttribute Примените метод веб-службы XML или соответствующий метод в прокси-классе, указав член, созданный во втором шаге свойстваMemberName.
В методе веб-службы XML или коде клиента веб-службы XML доступ к MemberName свойству для обработки данных, отправляемых в заголовке SOAP.
Конструкторы
| Имя | Описание |
|---|---|
| SoapHeader() |
Инициализирует новый экземпляр класса SoapHeader. |
Свойства
| Имя | Описание |
|---|---|
| Actor |
Возвращает или задает получателя заголовка SOAP. |
| DidUnderstand |
Возвращает или задает значение, указывающее, правильно ли метод веб-службы XML обработал заголовок SOAP. |
| EncodedMustUnderstand |
Возвращает или задает значение XML-атрибута для заголовка |
| EncodedMustUnderstand12 |
Возвращает или задает значение XML-атрибута для заголовка |
| EncodedRelay |
Возвращает или задает атрибут ретрансляции заголовка SOAP 1.2. |
| MustUnderstand |
Возвращает или задает значение, указывающее, следует ли SoapHeader понимать его. |
| Relay |
Возвращает или задает значение, указывающее, должен ли заголовок SOAP передаваться на следующий узел SOAP, если текущий узел не понимает заголовок. |
| Role |
Возвращает или задает получателя заголовка SOAP. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |