Freigeben über


Service Klasse

Definition

Gruppiert eine Reihe von verwandten Instanzen der Port-Klasse, die einem XML-Webdienst zugeordnet sind. Diese Klasse kann nicht vererbt werden.

public ref class Service sealed : System::Web::Services::Description::DocumentableItem
public ref class Service sealed : System::Web::Services::Description::NamedItem
public sealed class Service : System.Web.Services.Description.DocumentableItem
[System.Web.Services.Configuration.XmlFormatExtensionPoint("Extensions")]
public sealed class Service : System.Web.Services.Description.NamedItem
type Service = class
    inherit DocumentableItem
[<System.Web.Services.Configuration.XmlFormatExtensionPoint("Extensions")>]
type Service = class
    inherit NamedItem
Public NotInheritable Class Service
Inherits DocumentableItem
Public NotInheritable Class Service
Inherits NamedItem
Vererbung
Vererbung
Attribute

Beispiele

#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 = gcnew Port;
   myPort->Name = PortName;
   myPort->Binding = gcnew XmlQualifiedName( BindingName,targetNamespace );
   
   // Create a SoapAddress extensibility element to add to the port.
   SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding;
   mySoapAddressBinding->Location = "http://localhost/ServiceClass/MathService_CS.asmx";
   myPort->Extensions->Add( mySoapAddressBinding );
   return myPort;
}

int main()
{
   try
   {
      // Read a WSDL document.
      ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_CS.wsdl" );
      ServiceCollection^ myServiceCollection = myServiceDescription->Services;
      int noOfServices = myServiceCollection->Count;
      Console::WriteLine( "\nTotal number of services: {0}", noOfServices );

      // Gets a reference to the service.
      Service^ myOldService = myServiceCollection[ 0 ];
      Console::WriteLine( "No. of ports in the service: {0}", 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: {0}", myOldService->Ports[ i ]->Name );
      Console::WriteLine( "Service name: {0}", myOldService->Name );
      Service^ myService = gcnew 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: {0}", myOldService->Ports[ i ]->Name );

      // Add the extensions to the newly created Service.
      int noOfExtensions = myOldService->Extensions->Count;
      Console::WriteLine( "No. of extensions: {0}", 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: {0}", e->Message );
   }
}
using System;
using System.Web.Services.Description;
using System.Xml;

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

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

         // Gets 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 =
         "http://localhost/ServiceClass/MathService_CS.asmx";
      myPort.Extensions.Add(mySoapAddressBinding);
      return myPort;
   }
}
Imports System.Web.Services.Description
Imports System.Xml

Class MyServiceClass
   Public Shared Sub Main()
      Try
         ' Read a WSDL document.
         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())

         ' Gets 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.
         Dim j As Integer
         For j = 0 To myOldService.Ports.Count - 1
            Dim PortName As String = myServiceCollection(0).Ports(j).Name
            Dim BindingName As String = _
               myServiceCollection(0).Ports(j).Binding.Name
            myService.Ports.Add(CreatePort(PortName, BindingName, _
               myServiceDescription.TargetNamespace))
         Next j

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

         ' 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
            Dim l As Integer
            For l = 0 To myOldService.Ports.Count - 1
               myService.Extensions.Add(myServiceCollection(0).Extensions(l))
            Next l
         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)
      End Try
   End Sub

   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 = _
         "http://localhost/ServiceClass/MathService.vb.asmx"
      myPort.Extensions.Add(mySoapAddressBinding)
      Return myPort
   End Function 'CreatePort
End Class

Hinweise

Die Service Klasse entspricht dem <definitions> vom Stammelement eingeschlossenen Web Services Description Language (WSDL)<service>-Element. Weitere Informationen zu WSDL finden Sie in der WSDL-Spezifikation.

Konstruktoren

Service()

Initialisiert eine neue Instanz der Service-Klasse.

Eigenschaften

Documentation

Ruft die Textdokumentation für die Instanz von DocumentableItem ab oder legt diese fest.

(Geerbt von DocumentableItem)
DocumentationElement

Ruft das Dokumentationselement für das DocumentableItem ab oder legt dieses fest.

(Geerbt von DocumentableItem)
ExtensibleAttributes

Ruft ein Array vom Typ XmlAttribute ab, das Attributerweiterungen von WSDL darstellt, um dem WS-I-Basisprofil 1.1 (Web Services Interoperability) zu entsprechen, oder legt dieses fest.

(Geerbt von DocumentableItem)
Extensions

Ruft die Auflistung der Erweiterbarkeitselemente ab, die dem Service zugeordnet sind.

Name

Ruft den Namen des Elements ab oder legt diesen fest.

Name

Ruft den Namen des Elements ab oder legt diesen fest.

(Geerbt von NamedItem)
Namespaces

Ruft das Wörterbuch der Namespacepräfixe und Namespaces ab, die verwendet werden, um die Namespacepräfixe und Namespaces beim Erstellen eines ServiceDescription-Objekts beizubehalten.

(Geerbt von DocumentableItem)
Ports

Ruft die Auflistung von Port-Instanzen ab, die in der Service enthalten sind.

ServiceDescription

Ruft die ServiceDescription ab, zu deren Membern Service gehört.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für