SoapHeaderAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Данный атрибут применяется к методу веб-службы XML или клиенту веб-службы XML для указания заголовка SOAP, который может быть обработан методом XML или клиентом веб-службы. Этот класс не наследуется.
public ref class SoapHeaderAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=true)]
public sealed class SoapHeaderAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=true)>]
type SoapHeaderAttribute = class
inherit Attribute
Public NotInheritable Class SoapHeaderAttribute
Inherits Attribute
- Наследование
- Атрибуты
Примеры
Следующая MyWebService
веб-служба XML определяет один из SoapHeader типов MyHeader
. Метод Hello
веб-службы XML требует, чтобы клиент вызвал метод веб-службы XML с помощью этого SoapHeaderметода . Веб-служба Hello
XML также перехватывает все заголовки SOAP, отличные от MyHeader
.
<%@ WebService Language="C#" Class="MyWebService"%>
using System.Web.Services;
using System.Web.Services.Protocols;
// Define a SOAP header by deriving from the SoapHeader base class.
// The header contains just one string value.
public class MyHeader : SoapHeader {
public string MyValue;
}
public class MyWebService {
// Member variable to receive the contents of the MyHeader SoapHeader.
public MyHeader myHeader;
// Member variable to receive all headers other than MyHeader.
public SoapUnknownHeader[] unknownHeaders;
[WebMethod]
[SoapHeader("myHeader", Direction=SoapHeaderDirection.InOut)]
// Receive any SOAP headers other than MyHeader.
[SoapHeader("unknownHeaders")]
public void Hello() {
// Process the MyHeader SoapHeader.
if (myHeader.MyValue == "Some string") {
// Process the header.
}
foreach (SoapHeader header in unknownHeaders) {
// Perform some processing on header.
// For those headers that cannot be processed,
// set the DidUnderstand property to false.
header.DidUnderstand = false;
}
}
}
<%@ WebService Language="VB" Class="MyWebService"%>
Imports System.Web.Services
Imports System.Web.Services.Protocols
' Define a SOAP header by deriving from the SoapHeader base class.
' The header contains just one string value.
Public Class MyHeader
Inherits SoapHeader
Public MyValue As String
End Class
Public Class MyWebService
' Member variable to receive the contents of the MyHeader SoapHeader.
Public myHeader As MyHeader
' Member variable to receive all headers other than MyHeader.
Public unknownHeaders() As SoapUnknownHeader
' Receive any SOAP headers other than MyHeader.
<WebMethod, _
SoapHeader("myHeader", Direction := SoapHeaderDirection.InOut), _
SoapHeader("unknownHeaders")> _
Public Sub Hello()
' Process the MyHeader SoapHeader.
If myHeader.MyValue = "Some string" Then
' Process the header.
End If
Dim header As SoapHeader
For Each header In unknownHeaders
' Perform some processing on header
' For those headers that cannot be processed,
' set the DidUnderstand to false.
header.DidUnderstand = False
Next header
End Sub
End Class
Комментарии
Ниже приведены основные шаги по получению и обработке заголовка SOAP.
Создайте класс, производный от SoapHeader , представляющий данные, переданные в заголовке SOAP.
Добавьте член в класс веб-службы XML или прокси-класс клиента веб-службы XML типа, созданного на шаге 1.
SoapHeaderAttribute Примените к методу веб-службы XML или соответствующему методу в прокси-классе, указав элемент, созданный на шаге 2, в свойстве MemberName .
В методе веб-службы XML или клиентском коде веб-службы XML получите доступ к свойству MemberName для обработки данных, отправленных в заголовке SOAP.
Дополнительные сведения см. в свойстве MemberName .
Конструкторы
SoapHeaderAttribute(String) |
Инициализирует новый экземпляр класса SoapHeaderAttribute, устанавливая член класса веб-службы XML, представляющего содержимое заголовка SOAP. |
Свойства
Direction |
Получает или задает значение, указывающее, предназначен ли заголовок SOAP для веб-службы XML, для клиента веб-службы XML или для обоих. |
MemberName |
Получает или задает член класса веб-службы XML, представляющего содержимое заголовка SOAP. |
Required |
Устаревшие..
Данный член устарел и не применяется. |
TypeId |
В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute. (Унаследовано от Attribute) |
Методы
Equals(Object) |
Возвращает значение, показывающее, равен ли экземпляр указанному объекту. (Унаследовано от Attribute) |
GetHashCode() |
Возвращает хэш-код данного экземпляра. (Унаследовано от Attribute) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса. (Унаследовано от Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute) |