SoapHeader 类

定义

当在派生类中被重写时,表示 SOAP 标头的内容。

public ref class SoapHeader abstract
public abstract class SoapHeader
type SoapHeader = class
Public MustInherit Class SoapHeader
继承
SoapHeader
派生

示例

以下 MyWebService XML Web 服务定义 MyHeader SOAP 标头,并要求使用对 MyWebMethod XML Web 服务方法的任何调用发送该标头。 此外, MyWebMethod 接收 SOAP 标头以外的 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

注解

如果数据与 XML Web 服务方法的主要功能不直接相关,SOAP 标头提供了一种将数据传入和传出 XML Web 服务方法的方法。 例如,XML Web 服务可能包含多个 XML Web 服务方法,每个方法都需要自定义身份验证方案。 可以将引用派生自SoapHeader的类应用于每个 XML Web 服务方法,而不是将参数添加到自定义身份验证方案SoapHeaderAttribute的每个 XML Web 服务方法。 派生自 SoapHeader 自定义身份验证方案的类的实现。 通过这种方式,XML Web 服务方法仅实现特定于它的功能,并使用 SOAP 标头添加其他功能。

以下列表概述了接收和处理 SOAP 标头的基本步骤:

  1. 创建派生自 SoapHeader 表示传递到 SOAP 标头的数据的类。

  2. 将成员添加到实现 XML Web 服务或 XML Web 服务客户端代理类的类,该类是在第一步中创建的类型。

  3. 对代理类中的 XML Web 服务方法或相应方法应用一个 SoapHeaderAttribute ,指定在属性的第二步 MemberName 中创建的成员。

  4. 在 XML Web 服务方法或 XML Web 服务客户端代码中,访问 MemberName 该属性以处理 SOAP 标头中发送的数据。

构造函数

SoapHeader()

初始化 SoapHeader 类的新实例。

属性

Actor

获取或设置 SOAP 标头的接收者。

DidUnderstand

获取或设置一个值,该值指示 XML Web services 方法是否已正确处理 SOAP 标头。

EncodedMustUnderstand

当与 SOAP 协议 1.1 版通信时,获取或设置 SOAP 标头的 mustUnderstand XML 特性值。

EncodedMustUnderstand12

与 SOAP 协议 1.2 版通信时,获取或设置 SOAP 标头的 mustUnderstand 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)

适用于

另请参阅