次の方法で共有


PortType.Operations プロパティ

PortType で定義された Operation インスタンスのコレクションを取得します。

Public ReadOnly Property Operations As OperationCollection
[C#]
public OperationCollection Operations {get;}
[C++]
public: __property OperationCollection* get_Operations();
[JScript]
public function get Operations() : OperationCollection;

プロパティ値

OperationCollection

使用例

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

Class MyPortTypeClass
   Public Shared Sub Main()
      Try
         Dim myPortTypeCollection As PortTypeCollection
         Dim myServiceDescription As ServiceDescription = _
            ServiceDescription.Read("MathService_VB.wsdl")
         
         myPortTypeCollection = myServiceDescription.PortTypes
         Dim noOfPortTypes As Integer = myServiceDescription.PortTypes.Count
         Console.WriteLine( _
            ControlChars.Newline & "Total number of PortTypes : " & _
            noOfPortTypes.ToString())
         
         Dim myPortType As PortType = myPortTypeCollection("MathServiceSoap")
         myPortTypeCollection.Remove(myPortType)
         
         ' Create a new PortType.
         Dim myNewPortType As New PortType()
         myNewPortType.Name = "MathServiceSoap"
         Dim myOperationCollection As OperationCollection = _
            myServiceDescription.PortTypes(0).Operations
         Dim i As Integer
         Dim inputMsg As String
         Dim outputMsg As String
         For i = 0 To myOperationCollection.Count - 1
            inputMsg = myOperationCollection(i).Name & "SoapIn"
            outputMsg = myOperationCollection(i).Name & "SoapOut"
            Console.WriteLine(" Operation = " & myOperationCollection(i).Name)
            myNewPortType.Operations.Add( _
               CreateOperation(myOperationCollection(i).Name, inputMsg, _
               outputMsg, myServiceDescription.TargetNamespace))
         Next i
         ' Add the PortType to the collection.
         myPortTypeCollection.Add(myNewPortType)
         noOfPortTypes = myServiceDescription.PortTypes.Count
         Console.WriteLine( _
            ControlChars.Newline & "Total number of PortTypes : " & _
            noOfPortTypes.ToString())
         myServiceDescription.Write("MathService_New.wsdl")
      Catch e As Exception
         Console.WriteLine("Exception:" + e.Message.ToString())
      End Try
   End Sub 'Main
   
   Public Shared Function CreateOperation(operationName As String, inputMessage As String, _
                           outputMessage As String, targetNamespace As String) As Operation
      Dim myOperation As New Operation()
      myOperation.Name = operationName
      Dim input As OperationMessage = CType(New OperationInput(), OperationMessage)
      input.Message = New XmlQualifiedName(inputMessage, targetNamespace)
      Dim output As OperationMessage = CType(New OperationOutput(), OperationMessage)
      output.Message = New XmlQualifiedName(outputMessage, targetNamespace)
      myOperation.Messages.Add(input)
      myOperation.Messages.Add(output)
      Return myOperation
   End Function 'CreateOperation
End Class 'MyPortTypeClass

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

class MyPortTypeClass
{
   public static void Main()
   {
      try
      {
         PortTypeCollection myPortTypeCollection;
         ServiceDescription myServiceDescription =
            ServiceDescription.Read("MathService_CS.wsdl");
         
         myPortTypeCollection = myServiceDescription.PortTypes;
         int noOfPortTypes = myServiceDescription.PortTypes.Count;
         Console.WriteLine("\nTotal number of PortTypes : "
            + noOfPortTypes);

         PortType myPortType = myPortTypeCollection["MathServiceSoap"];
         myPortTypeCollection.Remove(myPortType);

         // Create a new PortType.
         PortType myNewPortType = new PortType();
         myNewPortType.Name = "MathServiceSoap";
         OperationCollection myOperationCollection = 
            myServiceDescription.PortTypes[0].Operations;
         
         string inputMsg,outputMsg;
         for(int i = 0; i < myOperationCollection.Count; i++)
         {
            inputMsg = myOperationCollection[i].Name + "SoapIn";
            outputMsg = myOperationCollection[i].Name + "SoapOut";
            Console.WriteLine(" Operation = " + myOperationCollection[i].Name);
            myNewPortType.Operations.Add(
               CreateOperation(myOperationCollection[i].Name, 
               inputMsg, outputMsg, myServiceDescription.TargetNamespace));
         }
         // Add the PortType to the collection.
         myPortTypeCollection.Add(myNewPortType);
         noOfPortTypes = myServiceDescription.PortTypes.Count;
         Console.WriteLine("\nTotal number of PortTypes : " 
            + noOfPortTypes);
         myServiceDescription.Write("MathService_New.wsdl");
      }
      catch(Exception e)
      {
         Console.WriteLine("Exception:" + e.Message);
      }
   }
   public static Operation CreateOperation(string operationName,
      string inputMessage,string outputMessage,string targetNamespace)
   {
      Operation myOperation = new Operation();
      myOperation.Name = operationName;
      OperationMessage input = (OperationMessage) new OperationInput();
      input.Message = new XmlQualifiedName(inputMessage, targetNamespace);
      OperationMessage output = (OperationMessage) new OperationOutput();
      output.Message = new XmlQualifiedName(outputMessage, targetNamespace);
      myOperation.Messages.Add(input);
      myOperation.Messages.Add(output);
      return myOperation;
   }
}

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

Operation* CreateOperation(String* operationName,
                           String* inputMessage,String* outputMessage,String* targetNamespace)
{
   Operation* myOperation = new Operation();
   myOperation->Name = operationName;
   OperationMessage* input = dynamic_cast<OperationMessage*> (new OperationInput());
   input->Message = new XmlQualifiedName(inputMessage, targetNamespace);
   OperationMessage* output = dynamic_cast<OperationMessage*> (new OperationOutput());
   output->Message = new XmlQualifiedName(outputMessage, targetNamespace);
   myOperation->Messages->Add(input);
   myOperation->Messages->Add(output);
   return myOperation;
}

int main()
{
   try
   {
      PortTypeCollection* myPortTypeCollection;
      ServiceDescription* myServiceDescription =
         ServiceDescription::Read(S"MathService_CS.wsdl");

      myPortTypeCollection = myServiceDescription->PortTypes;
      int noOfPortTypes = myServiceDescription->PortTypes->Count;
      Console::WriteLine(S"\nTotal number of PortTypes : {0}", __box(noOfPortTypes));

      PortType* myPortType = myPortTypeCollection->Item[S"MathServiceSoap"];
      myPortTypeCollection->Remove(myPortType);

      // Create a new PortType.
      PortType* myNewPortType = new PortType();
      myNewPortType->Name = S"MathServiceSoap";
      OperationCollection* myOperationCollection = 
         myServiceDescription->PortTypes->Item[0]->Operations;

      String* inputMsg;
      String* outputMsg;

      for(int i = 0; i < myOperationCollection->Count; i++)
      {
         inputMsg = String::Concat( myOperationCollection->Item[i]->Name, S"SoapIn" );
         outputMsg = String::Concat( myOperationCollection->Item[i]->Name, S"SoapOut" );
         Console::WriteLine(S" Operation = {0}", myOperationCollection->Item[i]->Name);
         myNewPortType->Operations->Add(
            CreateOperation(myOperationCollection->Item[i]->Name, 
            inputMsg, outputMsg, myServiceDescription->TargetNamespace));
      }
      // Add the PortType to the collection.
      myPortTypeCollection->Add(myNewPortType);
      noOfPortTypes = myServiceDescription->PortTypes->Count;
      Console::WriteLine(S"\nTotal number of PortTypes : {0}", __box(noOfPortTypes));
      myServiceDescription->Write(S"MathService_New.wsdl");
   }
   catch(Exception* e)
   {
      Console::WriteLine(S"Exception:{0}", e->Message);
   }
}

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

必要条件

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

参照

PortType クラス | PortType メンバ | System.Web.Services.Description 名前空間