This documentation is archived and is not being maintained.

MessagePartCollection Class

Represents a collection of instances of the MessagePart class. This class cannot be inherited.

For a list of all members of this type, see MessagePartCollection Members.

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

[Visual Basic]
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

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Remarks

The MessagePart class corresponds to a Web Services Description Language (WSDL) <part> element enclosed by the <message> element, which is in turn enclosed by the <definitions> root element. For more information about WSDL, see the specification at http://www.w3.org/TR/wsdl/.

Example

[Visual Basic, C#, C++] The following example demonstrates the use of the methods and properties exposed by the MessagePartCollection class.

[Visual Basic] 
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] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Namespace: System.Web.Services.Description

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

Assembly: System.Web.Services (in System.Web.Services.dll)

See Also

MessagePartCollection Members | System.Web.Services.Description Namespace | Message

Show: