SoapUnknownHeader クラス
アセンブリ: System.Web.Services (system.web.services.dll 内)


SOAP クライアントは、SOAP ヘッダーの形式の必須パラメータに加えられた追加データを使用して、XML Web サービスを呼び出すことがあります。ASP.NET で作成された XML Web サービスまたは XML Web サービス クライアントは、SoapHeader、SoapHeader、SoapUnknownHeader の配列、または SoapUnknownHeader の配列の MemberName プロパティを使用して SoapHeaderAttribute を XML Web サービス メソッドに適用することにより、XML Web サービスの作成時には把握していなかった任意の SOAP ヘッダーを参照できます。SoapUnknownHeader の Type を指定すると、XML Web サービスは XmlElement の形式で SOAP ヘッダーの内容を表示できます。

MyWebService XML Web サービスでは、MyWebMethod XML Web サービス メソッドの呼び出しと共に送信される MyHeader SOAP ヘッダーを受け付け、処理します。また、MyWebMethod が MyHeader SOAP ヘッダー以外のすべての SOAP ヘッダーを受信します。
<%@ 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 myHeader As MyHeader ' Receive all SOAP headers besides the MyHeader SOAP header. Public unknownHeaders() As SoapUnknownHeader 'Receive any SOAP headers other than MyHeader. <WebMethod, _ SoapHeader("myHeader", Direction := SoapHeaderDirection.InOut), _ SoapHeader("unknownHeaders")> _ Public Function MyWebMethod() As String Dim unknownHeaderAttributes As String = String.Empty ' Set myHeader.MyValue to some value. Dim header As SoapUnknownHeader For Each header In unknownHeaders ' Perform some processing on the header. Dim attribute As XmlAttribute For Each attribute In header.Element.Attributes unknownHeaderAttributes &= attribute.Name & ":" & _ attribute.Value & ";" Next attribute ' For those headers that cannot be ' processed, set the DidUnderstand property to false. header.DidUnderstand = False Next header Return unknownHeaderAttributes End Function End Class
<%@ 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")] public string MyWebMethod() { string unknownHeaderAttributes = String.Empty; // Set myHeader.MyValue to some value. foreach (SoapUnknownHeader header in unknownHeaders) { // Perform some processing on the header. foreach (XmlAttribute attribute in header.Element.Attributes) { unknownHeaderAttributes = unknownHeaderAttributes + attribute.Name + ":" + attribute.Value + ";"; } // For those headers that cannot be // processed, set the DidUnderstand property to false. header.DidUnderstand = false; } return unknownHeaderAttributes; } }

System.Web.Services.Protocols.SoapHeader
System.Web.Services.Protocols.SoapUnknownHeader


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- SoapUnknownHeader クラスのページへのリンク