次の方法で共有


Service.Ports プロパティ

Service に格納されている Port インスタンスのコレクションを取得します。

Public ReadOnly Property Ports As PortCollection
[C#]
public PortCollection Ports {get;}
[C++]
public: __property PortCollection* get_Ports();
[JScript]
public function get Ports() : PortCollection;

プロパティ値

PortCollection

使用例

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

Class MyServiceClass
   
   Public Shared Sub Main()
      Try
         Dim myServiceDescription As ServiceDescription = _
            ServiceDescription.Read("MathService_VB.wsdl")
         Dim myServiceCollection As ServiceCollection = _
            myServiceDescription.Services
         
         Dim noOfServices As Integer = myServiceCollection.Count
         Console.WriteLine(ControlChars.Newline & _
            "Total number of services: " & noOfServices.ToString())

         ' Get a reference to the service.
         Dim myOldService As Service = myServiceCollection(0)
         Console.WriteLine("No.of Ports in the Service" &  _
            myServiceCollection(0).Ports.Count.ToString())
         Console.WriteLine("These are the ports in the service:")
         Dim i As Integer
         For i = 0 To myOldService.Ports.Count - 1
            Console.WriteLine("Port name: " & myOldService.Ports(i).Name)
         Next i
         Console.WriteLine("Service name: " & myOldService.Name)
         
         Dim myService As New Service()
         myService.Name = "MathService"

         ' Add the ports to the newly created service.
         For i = 0 To myOldService.Ports.Count - 1
            Dim PortName As String = myServiceCollection(0).Ports(i).Name
            Dim BindingName As String = _
               myServiceCollection(0).Ports(i).Binding.Name
            myService.Ports.Add(CreatePort(PortName, BindingName, _
               myServiceDescription.TargetNamespace))
         Next i

         Console.WriteLine("Newly created ports -")
         For i = 0 To myService.Ports.Count - 1
            Console.WriteLine("Port Name: " & myOldService.Ports(i).Name)
         Next i 

         ' Add the extensions to the newly created service.
         Dim noOfExtensions As Integer = myOldService.Extensions.Count
         Console.WriteLine("No. of extensions: " & noOfExtensions.ToString())

         If noOfExtensions > 0 Then
            For i = 0 To myOldService.Ports.Count - 1
               myService.Extensions.Add(myServiceCollection(0).Extensions(i))
            Next i
         End If 

         ' Remove the service from the collection.
         myServiceCollection.Remove(myOldService)

         ' Add the newly created service.
         myServiceCollection.Add(myService)
         myServiceDescription.Write("MathService_New.wsdl")
      Catch e As Exception
         Console.WriteLine("Exception: " & e.Message.ToString())
      End Try
   End Sub 'Main
   
   
   Public Shared Function CreatePort(PortName As String, _
         BindingName As String, targetNamespace As String) As Port
      Dim myPort As New Port()
      myPort.Name = PortName
      myPort.Binding = New XmlQualifiedName(BindingName, targetNamespace)

      ' Create a SoapAddress extensibility element to add to the port.
      Dim mySoapAddressBinding As New SoapAddressBinding()
      mySoapAddressBinding.Location = _
         "https://localhost/Service_Class/MathService_VB.asmx"
      myPort.Extensions.Add(mySoapAddressBinding)
      Return myPort
   End Function 'CreatePort
End Class 'MyServiceClass

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

class MyServiceClass
{
   public static void Main()
   {
      try
      {
         ServiceDescription myServiceDescription = 
            ServiceDescription.Read("MathService_CS.wsdl");
         ServiceCollection myServiceCollection = 
            myServiceDescription.Services;

         int noOfServices = myServiceCollection.Count;
         Console.WriteLine("\nTotal number of services: " + noOfServices);

         // Get a reference to the service.
         Service myOldService = myServiceCollection[0];
         Console.WriteLine("No. of Ports in the Service" + 
            myServiceCollection[0].Ports.Count);
         Console.WriteLine("These are the ports in the service:");
         for(int i = 0; i < myOldService.Ports.Count; i++)
            Console.WriteLine("Port name: " + myOldService.Ports[i].Name);
         Console.WriteLine("Service name: " + myOldService.Name);

         Service  myService = new Service();
         myService.Name = "MathService";

         // Add the ports to the newly created service.
         for(int i = 0; i < myOldService.Ports.Count; i++)
         {
            string PortName = myServiceCollection[0].Ports[i].Name;
            string BindingName = 
               myServiceCollection[0].Ports[i].Binding.Name;
            myService.Ports.Add(CreatePort(PortName, BindingName, 
               myServiceDescription.TargetNamespace));
         }

         Console.WriteLine("Newly created ports -");
         for(int i = 0; i < myService.Ports.Count; i++)
            Console.WriteLine("Port Name: " + myOldService.Ports[i].Name);

         // Add the extensions to the newly created service.
         int noOfExtensions = myOldService.Extensions.Count;
         Console.WriteLine("No. of extensions: " + noOfExtensions);
         if (noOfExtensions > 0)
         {
            for(int i = 0; i <myOldService.Ports.Count; i++)
               myService.Extensions.Add(
                  myServiceCollection[0].Extensions[i]);
         }

         // Remove the service from the collection.
         myServiceCollection.Remove(myOldService);

         // Add the newly created service.
         myServiceCollection.Add(myService);
         myServiceDescription.Write("MathService_New.wsdl");
      }
      catch(Exception e)
      {
         Console.WriteLine("Exception: " + e.Message);
      }
   }

   public static Port CreatePort(string PortName, string BindingName, 
      string targetNamespace)
   {
      Port myPort = new Port();
      myPort.Name = PortName;
      myPort.Binding = new XmlQualifiedName(BindingName,targetNamespace);

      // Create a SoapAddress extensibility element to add to the port.
      SoapAddressBinding mySoapAddressBinding = new SoapAddressBinding();
      mySoapAddressBinding.Location = 
         "https://localhost/Service_Class/MathService_CS.asmx";
      myPort.Extensions.Add(mySoapAddressBinding);
      return myPort;
   }
}

[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;

Port* CreatePort(String* PortName, String* BindingName,
                 String* targetNamespace)
{
   Port* myPort = new Port();
   myPort->Name = PortName;
   myPort->Binding = new XmlQualifiedName(BindingName,targetNamespace);

   // Create a SoapAddress extensibility element to add to the port.
   SoapAddressBinding* mySoapAddressBinding = new SoapAddressBinding();
   mySoapAddressBinding->Location =
      S"https://localhost/Service_Class/MathService_CS.asmx";
   myPort->Extensions->Add(mySoapAddressBinding);
   return myPort;
}

int main()
{
   try
   {
      ServiceDescription* myServiceDescription =
         ServiceDescription::Read(S"MathService_CS.wsdl");
      ServiceCollection* myServiceCollection =
         myServiceDescription->Services;

      int noOfServices = myServiceCollection->Count;
      Console::WriteLine(S"\nTotal number of services: {0}", __box(noOfServices));

      // Get a reference to the service.
      Service* myOldService = myServiceCollection->Item[0];
      Console::WriteLine(S"No. of Ports in the Service{0}", __box(myServiceCollection->Item[0]->Ports->Count));
      Console::WriteLine(S"These are the ports in the service:");
      for(int i = 0; i < myOldService->Ports->Count; i++)
         Console::WriteLine(S"Port name: {0}", myOldService->Ports->Item[i]->Name);
      Console::WriteLine(S"Service name: {0}", myOldService->Name);

      Service*  myService = new Service();
      myService->Name = S"MathService";

      // Add the ports to the newly created service.
      for(int i = 0; i < myOldService->Ports->Count; i++)
      {
         String* PortName = myServiceCollection->Item[0]->Ports->Item[i]->Name;
         String* BindingName =
            myServiceCollection->Item[0]->Ports->Item[i]->Binding->Name;
         myService->Ports->Add(CreatePort(PortName, BindingName,
            myServiceDescription->TargetNamespace));
      }

      Console::WriteLine(S"Newly created ports -");
      for(int i = 0; i < myService->Ports->Count; i++)
         Console::WriteLine(S"Port Name: {0}", myOldService->Ports->Item[i]->Name);

      // Add the extensions to the newly created service.
      int noOfExtensions = myOldService->Extensions->Count;
      Console::WriteLine(S"No. of extensions: {0}", __box(noOfExtensions));
      if (noOfExtensions > 0)
      {
         for(int i = 0; i <myOldService->Ports->Count; i++)
            myService->Extensions->Add(
            myServiceCollection->Item[0]->Extensions->Item[i]);
      }

      // Remove the service from the collection.
      myServiceCollection->Remove(myOldService);

      // Add the newly created service.
      myServiceCollection->Add(myService);
      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 ファミリ

参照

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