MessagePartCollection クラス

MessagePart クラスのインスタンスのコレクションを表します。このクラスは継承できません。

この型のすべてのメンバの一覧については、MessagePartCollection メンバ を参照してください。

System.Object
   System.Collections.CollectionBase
      System.Web.Services.Description.ServiceDescriptionBaseCollection
         System.Web.Services.Description.MessagePartCollection

NotInheritable Public Class MessagePartCollection
   Inherits ServiceDescriptionBaseCollection
[C#]
public sealed class MessagePartCollection :
   ServiceDescriptionBaseCollection
[C++]
public __gc __sealed class MessagePartCollection : public
   ServiceDescriptionBaseCollection
[JScript]
public class MessagePartCollection extends
   ServiceDescriptionBaseCollection

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

MessagePart クラスは、 <message> 要素で囲まれた WSDL (Web Services Description Language) <part> 要素に対応しています。さらに、この要素は <definitions> ルート要素によって囲まれます。WSDL の詳細については、http://www.w3.org/TR/wsdl/ の仕様を参照してください。

使用例

[Visual Basic, C#, C++] MessagePartCollection クラスによって公開されるメソッドとプロパティを使用する例を次に示します。

 
Imports System
Imports System.Web.Services.Description
Imports System.Collections
Imports System.Xml
Imports Microsoft.VisualBasic

Class MyClass1
   Public Shared Sub Main()
      Console.WriteLine("")
      Console.WriteLine("MessagePartCollection Sample")
      Console.WriteLine("============================")
      Console.WriteLine("")

      Dim myServiceDescription As ServiceDescription = _
         ServiceDescription.Read("MathService.wsdl")
      ' Get the message collection.
      Dim myMessageCollection As MessageCollection = _
         myServiceDescription.Messages
      Console.WriteLine("Total Messages in the document = " & _
         myServiceDescription.Messages.Count.ToString)
      Console.WriteLine("")
      Console.WriteLine("Enumerating PartCollection for each message...")
      Console.WriteLine("")
      ' Get the message part collection for each message.
      Dim i As Integer
      For i =0 to myMessageCollection.Count-1
         Console.WriteLine("Message      : " & myMessageCollection(i).Name)

         ' Get the message part collection.
         Dim myMessagePartCollection As MessagePartCollection = _
            myMessageCollection(i).Parts

         ' Display the part collection.
         Dim k As Integer
         For k = 0 To myMessagePartCollection.Count - 1
            Console.WriteLine(ControlChars.Tab & "       Part Name     : " & _
               myMessagePartCollection(k).Name)
            Console.WriteLine(ControlChars.Tab & "       Message Name  : " & _
               myMessagePartCollection(k).Message.Name)
         Next k
         Console.WriteLine("")
      Next
      Console.WriteLine("Displaying the array copied from the " & _
         "MessagePartCollection for the message AddHttpGetIn.")
      Dim myLocalMessage As Message = _
         myServiceDescription.Messages("AddHttpPostOut")
      If myMessageCollection.Contains(myLocalMessage) Then
         Console.WriteLine("Message      : " & myLocalMessage.Name)

         ' Get the message part collection.
         Dim myMessagePartCollection As MessagePartCollection = _
            myLocalMessage.Parts
         Dim myMessagePart(myMessagePartCollection.Count) As MessagePart

         ' Copy the MessagePartCollection to an array.
         myMessagePartCollection.CopyTo(myMessagePart, 0)
         Dim k As Integer
         For k = 0 To myMessagePart.Length - 2
            Console.WriteLine(ControlChars.Tab & "       Part Name : " & _
               myMessagePartCollection(k).Name)
         Next k
         Console.WriteLine("")
      End If

      Console.WriteLine("Checking if message is AddHttpPostOut...")
      Dim myMessage As Message = myServiceDescription.Messages("AddHttpPostOut")
      If myMessageCollection.Contains(myMessage) Then

         ' Get the message part collection.
         Dim myMessagePartCollection As MessagePartCollection = myMessage.Parts

         ' Get the part named Body.
         Dim myMessagePart As MessagePart = myMessage.Parts("Body")
         If myMessagePartCollection.Contains(myMessagePart) Then

            ' Get the index of the part named Body.
            Console.WriteLine("Index of Body in MessagePart collection = " & _
               myMessagePartCollection.IndexOf(myMessagePart).ToString)
            Console.WriteLine("Deleting Body from MessagePart Collection...")
            myMessagePartCollection.Remove(myMessagePart)
            If myMessagePartCollection.IndexOf(myMessagePart) = -1 Then
               Console.WriteLine("MessagePart Body successfully deleted " & _
               "from the message AddHttpPostOut.")
            End If
         End If
      End If
   End Sub 'Main
End Class '[MyClass1]

[C#] 
using System;
using System.Web.Services.Description;
using System.Collections;
using System.Xml;

class MyClass1
{
   public static void Main()
   {
      Console.WriteLine("");
      Console.WriteLine("MessagePartCollection Sample");
      Console.WriteLine("============================");
      Console.WriteLine("");

      ServiceDescription myServiceDescription = 
         ServiceDescription.Read("MathService.wsdl");

      // Get the message collection.
      MessageCollection myMessageCollection = myServiceDescription.Messages;
      Console.WriteLine("Total Messages in the document = " + 
         myServiceDescription.Messages.Count);
      Console.WriteLine("");
      Console.WriteLine("Enumerating PartCollection for each message...");
      Console.WriteLine("");
      // Get the message part collection for each message.
      for(int i =0; i < myMessageCollection.Count; ++i)
      {
         Console.WriteLine("Message      : " + myMessageCollection[i].Name);

         // Get the message part collection.
         MessagePartCollection myMessagePartCollection = 
            myMessageCollection[i].Parts;

         // Display the part collection.
         for(int k = 0; k < myMessagePartCollection.Count;k++)
         {
            Console.WriteLine("\t       Part Name     : " + 
               myMessagePartCollection[k].Name);
            Console.WriteLine("\t       Message Name  : " + 
               myMessagePartCollection[k].Message.Name);
         }
         Console.WriteLine("");
      }
      Console.WriteLine("Displaying the array copied from the " +
         "MessagePartCollection for the message AddHttpGetIn.");
      Message myLocalMessage = myServiceDescription.Messages["AddHttpPostOut"];
      if (myMessageCollection.Contains(myLocalMessage))
      {
         Console.WriteLine("Message      : " + myLocalMessage.Name);

         // Get the message part collection.
         MessagePartCollection myMessagePartCollection = myLocalMessage.Parts;
         MessagePart[] myMessagePart  = 
            new MessagePart[myMessagePartCollection.Count];

         // Copy the MessagePartCollection to an array.
         myMessagePartCollection.CopyTo(myMessagePart,0);
         for(int k = 0; k < myMessagePart.Length; k++)
         {
            Console.WriteLine("\t       Part Name : " + 
               myMessagePartCollection[k].Name);
         }
         Console.WriteLine("");
      }

      Console.WriteLine("Checking if message is AddHttpPostOut...");
      Message myMessage = myServiceDescription.Messages["AddHttpPostOut"];
      if (myMessageCollection.Contains(myMessage))
      {
         // Get the message part collection.
         MessagePartCollection myMessagePartCollection = myMessage.Parts;

         // Get the part named Body.
         MessagePart myMessagePart = myMessage.Parts["Body"];
         if (myMessagePartCollection.Contains(myMessagePart))
         {
            // Get the index of the part named Body.
            Console.WriteLine("Index of Body in MessagePart collection = " + 
               myMessagePartCollection.IndexOf(myMessagePart));
            Console.WriteLine("Deleting Body from MessagePart collection...");
            myMessagePartCollection.Remove(myMessagePart);
            if(myMessagePartCollection.IndexOf(myMessagePart)== -1)
            {
               Console.WriteLine("MessagePart Body successfully deleted " +
                  "from the message AddHttpPostOut.");
            }
         }
      }
   }
}

[C++] 
#using <mscorlib.dll>
#using <System.Xml.dll>
#using <System.Web.Services.dll>
using namespace System;
using namespace System::Web::Services::Description;
using namespace System::Collections;
using namespace System::Xml;

int main() 
{
   Console::WriteLine(S"");
   Console::WriteLine(S"MessagePartCollection Sample");
   Console::WriteLine(S"============================");
   Console::WriteLine(S"");

   ServiceDescription* myServiceDescription = 
      ServiceDescription::Read(S"MathService.wsdl");

   // Get the message collection.
   MessageCollection* myMessageCollection = myServiceDescription->Messages;
   Console::WriteLine(S"Total Messages in the document = {0}",
      __box( myServiceDescription->Messages->Count));
   Console::WriteLine(S"");
   Console::WriteLine(S"Enumerating PartCollection for each message...");
   Console::WriteLine(S"");
   // Get the message part collection for each message.
   for (int i =0; i < myMessageCollection->Count; ++i) 
   {
      Console::WriteLine(S"Message      : {0}", 
         myMessageCollection->Item[i]->Name);

      // Get the message part collection.
      MessagePartCollection* myMessagePartCollection = 
         myMessageCollection->Item[i]->Parts;

      // Display the part collection.
      for (int k = 0; k < myMessagePartCollection->Count;k++)
      {
         Console::WriteLine(S"\t       Part Name     : {0}", 
            myMessagePartCollection->Item[k]->Name);
         Console::WriteLine(S"\t       Message Name  : {0}", 
            myMessagePartCollection->Item[k]->Message->Name);
      }
      Console::WriteLine(S"");
   }
   Console::WriteLine(S"Displaying the array copied from the "\
      S"MessagePartCollection for the message AddHttpGetIn.");
   Message* myLocalMessage = 
      myServiceDescription->Messages->Item[S"AddHttpPostOut"];
   if (myMessageCollection->Contains(myLocalMessage))
   {
      Console::WriteLine(S"Message      : {0}", myLocalMessage->Name);

      // Get the message part collection.
      MessagePartCollection* myMessagePartCollection = myLocalMessage->Parts;
      MessagePart* myMessagePart[] = 
         new MessagePart*[myMessagePartCollection->Count];

      // Copy the MessagePartCollection to an array.
      myMessagePartCollection->CopyTo(myMessagePart, 0);
      for (int k = 0; k < myMessagePart->Length; k++)
         Console::WriteLine(S"\t       Part Name : {0}", 
            myMessagePartCollection->Item[k]->Name);
      Console::WriteLine(S"");
   }

   Console::WriteLine(S"Checking if message is AddHttpPostOut...");
   Message* myMessage = myServiceDescription->Messages->Item[S"AddHttpPostOut"];
   if (myMessageCollection->Contains(myMessage)) 
   {
      // Get the mssage part collection.
      MessagePartCollection* myMessagePartCollection = myMessage->Parts;
      // Get the part named Body.
      MessagePart* myMessagePart = myMessage->Parts->Item[S"Body"];
      if (myMessagePartCollection->Contains(myMessagePart)) 
      {
         // Get the part named Body.
         Console::WriteLine(S"Index of Body in MessagePart collection = {0}",
            __box( myMessagePartCollection->IndexOf(myMessagePart)));
         Console::WriteLine(S"Deleting Body from MessagePart collection...");
         myMessagePartCollection->Remove(myMessagePart);
         if (myMessagePartCollection->IndexOf(myMessagePart)== -1) 
            Console::WriteLine(S"MessagePart Body successfully deleted "\
               S"from the message AddHttpPostOut.");
      }
   }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Web.Services.Description

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Web.Services (System.Web.Services.dll 内)

参照

MessagePartCollection メンバ | System.Web.Services.Description 名前空間 | Message