SoapHeader 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当在派生类中被重写时,表示 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 标头的基本步骤:
创建派生自 SoapHeader 表示传递到 SOAP 标头的数据的类。
将成员添加到实现 XML Web 服务或 XML Web 服务客户端代理类的类,该类是在第一步中创建的类型。
对代理类中的 XML Web 服务方法或相应方法应用一个 SoapHeaderAttribute ,指定在属性的第二步 MemberName 中创建的成员。
在 XML Web 服务方法或 XML Web 服务客户端代码中,访问 MemberName 该属性以处理 SOAP 标头中发送的数据。
构造函数
SoapHeader() |
初始化 SoapHeader 类的新实例。 |
属性
Actor |
获取或设置 SOAP 标头的接收者。 |
DidUnderstand |
获取或设置一个值,该值指示 XML Web services 方法是否已正确处理 SOAP 标头。 |
EncodedMustUnderstand |
当与 SOAP 协议 1.1 版通信时,获取或设置 SOAP 标头的 |
EncodedMustUnderstand12 |
与 SOAP 协议 1.2 版通信时,获取或设置 SOAP 标头的 |
EncodedRelay |
获取或设置 SOAP 1.2 标头的中转特性。 |
MustUnderstand |
获取或设置一个值,该值指示是否必须理解 SoapHeader。 |
Relay |
获取或设置一个值,该值指示当前节点不理解 SOAP 标头时是否将该标头中转到下一个 SOAP 节点。 |
Role |
获取或设置 SOAP 标头的接收者。 |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |