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 |
Получает или задает значение, указывающее, правильно ли обработан заголовок SOAP методом веб-службы XML. |
EncodedMustUnderstand |
Получает или задает значение XML-атрибута |
EncodedMustUnderstand12 |
Возвращает или задает значение атрибута XML |
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) |