ServiceDescriptionImporter Klasse

Definition

Macht eine Methode zum Generieren von Clientproxyklassen für XML-Webdienste verfügbar.Exposes a means of generating client proxy classes for XML Web services.

public ref class ServiceDescriptionImporter
public class ServiceDescriptionImporter
type ServiceDescriptionImporter = class
Public Class ServiceDescriptionImporter
Vererbung
ServiceDescriptionImporter

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung der ServiceDescriptionImporter-Klasse zum Generieren von Proxy Client Code, der einen von einer WSDL-Datei beschriebenen XML-Webdienst aufruft.The following example illustrates the use of the ServiceDescriptionImporter class to generate proxy client code that calls an XML Web service described by a WSDL file.

#using <System.Xml.dll>
#using <System.Web.Services.dll>
#using <System.dll>

using namespace System;
using namespace System::Web::Services::Description;
using namespace System::CodeDom;
using namespace System::CodeDom::Compiler;

int main()
{
   // Get a WSDL file describing a service.
   ServiceDescription^ description = ServiceDescription::Read( "service.wsdl" );

   // Initialize a service description importer.
   ServiceDescriptionImporter^ importer = gcnew ServiceDescriptionImporter;
   importer->ProtocolName = "Soap12"; // Use SOAP 1.2.
   importer->AddServiceDescription( description, nullptr, nullptr );

   // Report on the service descriptions.
   Console::WriteLine( "Importing {0} service descriptions with {1} associated schemas.", importer->ServiceDescriptions->Count, importer->Schemas->Count );

   // Generate a proxy client.
   importer->Style = ServiceDescriptionImportStyle::Client;

   // Generate properties to represent primitive values.
   importer->CodeGenerationOptions = System::Xml::Serialization::CodeGenerationOptions::GenerateProperties;

   // Initialize a Code-DOM tree into which we will import the service.
   CodeNamespace^ nmspace = gcnew CodeNamespace;
   CodeCompileUnit^ unit = gcnew CodeCompileUnit;
   unit->Namespaces->Add( nmspace );
   
   // Import the service into the Code-DOM tree. This creates proxy code
   // that uses the service.
   ServiceDescriptionImportWarnings warning = importer->Import(nmspace,unit);
   if ( warning == (ServiceDescriptionImportWarnings)0 )
   {
      // Generate and print the proxy code in C#.
      CodeDomProvider^ provider = CodeDomProvider::CreateProvider( "CSharp" );
      ICodeGenerator^ generator = provider->CreateGenerator();
      generator->GenerateCodeFromCompileUnit( unit, Console::Out, gcnew CodeGeneratorOptions );
   }
   else
   {
      // Print an error message.
      Console::WriteLine( warning );
   }
}
using System;
using System.Web.Services.Description;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Security.Permissions;

public class Import {

    public static void Main() 
    {
        Run();
    }

    [PermissionSetAttribute(SecurityAction.Demand, Name = "Full Trust")]
    public static void Run()
    {
    // Get a WSDL file describing a service.
    ServiceDescription description = ServiceDescription.Read("service.wsdl");

    // Initialize a service description importer.
    ServiceDescriptionImporter importer = new ServiceDescriptionImporter();
    importer.ProtocolName = "Soap12";  // Use SOAP 1.2.
    importer.AddServiceDescription(description,null,null);

    // Report on the service descriptions.
    Console.WriteLine("Importing {0} service descriptions with {1} associated schemas.",
                      importer.ServiceDescriptions.Count, importer.Schemas.Count);

    // Generate a proxy client.
    importer.Style = ServiceDescriptionImportStyle.Client;

    // Generate properties to represent primitive values.
    importer.CodeGenerationOptions = System.Xml.Serialization.CodeGenerationOptions.GenerateProperties;

    // Initialize a Code-DOM tree into which we will import the service.
    CodeNamespace nmspace = new CodeNamespace();
    CodeCompileUnit unit = new CodeCompileUnit();
    unit.Namespaces.Add(nmspace);

    // Import the service into the Code-DOM tree. This creates proxy code
    // that uses the service.
    ServiceDescriptionImportWarnings warning = importer.Import(nmspace,unit);

    if (warning == 0)
    {
        // Generate and print the proxy code in C#.
        CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");
        provider.GenerateCodeFromCompileUnit(unit, Console.Out, new CodeGeneratorOptions() );
    }
    else
    {
        // Print an error message.
        Console.WriteLine(warning); 
    }
}
}

Hinweise

Die Schnittstelle zu einem XML-Webdienst wird in der Regel durch eine WSDL-Datei (Web Services Description Language) beschrieben.The interface to an XML Web service is typically described by a Web Services Description Language (WSDL) file. Um z. b. eine WSDL-Beschreibung eines Webdiensts mit ASP.net zu erhalten, der auf http://localhost/service.asmxverfügbar gemacht wird, navigieren Sie einfach zu http://localhost/service.asmx?WSDL.For example, to obtain a WSDL description of a Web service using ASP.NET exposed at http://localhost/service.asmx, simply navigate to http://localhost/service.asmx?WSDL.

Die ServiceDescriptionImporter-Klasse ermöglicht es Ihnen, die in einer WSDL-Beschreibung enthaltenen Informationen auf einfache Weise in ein System.CodeDom.CodeCompileUnit Objekt zu importieren.The ServiceDescriptionImporter class allows you to easily import the information contained in a WSDL description into a System.CodeDom.CodeCompileUnit object. Indem Sie den Wert des Style-Parameters anpassen, können Sie eine ServiceDescriptionImporter Instanz anweisen, eine Client Proxy Klasse zu generieren, die die Funktionalität des Webdiensts bereitstellt, indem Sie Sie transparent aufrufen oder eine abstrakte Klasse generieren, die die Funktionalität des Webdiensts ohne Implementierung kapselt.By adjusting the value of the Style parameter, you can instruct a ServiceDescriptionImporter instance either to generate a client proxy class that provides the functionality of the Web service by transparently calling it or to generate an abstract class that encapsulates the functionality of the Web service without implementing it.

Der Code im resultierenden CodeCompileUnit-Objekt kann dann entweder direkt aufgerufen oder in der Sprache Ihrer Wahl exportiert werden.The code in the resulting CodeCompileUnit object can then either be called directly or exported in the language of your choice.

Konstruktoren

ServiceDescriptionImporter()

Initialisiert eine neue Instanz der ServiceDescriptionImporter-Klasse.Initializes a new instance of the ServiceDescriptionImporter class.

Eigenschaften

CodeGenerationOptions

Ruft verschiedene Optionen für die Codegenerierung ab oder legt diese fest.Gets or sets various options for code generation.

CodeGenerator

Ruft den vom Dienstbeschreibungsimporter verwendeten Code-Generator auf oder legt diesen fest.Gets or sets the code generator used by the service description importer.

ProtocolName

Ruft das Protokoll für den Zugriff auf die beschriebenen XML-Webdienste ab oder legt dieses fest.Gets or sets the protocol used to access the described XML Web services.

Schemas

Ruft die von der XmlSchemas-Eigenschaft verwendeten ServiceDescriptions ab.Gets the XmlSchemas used by the ServiceDescriptions property.

ServiceDescriptions

Ruft die Auflistung zu importierender ServiceDescription-Instanzen ab.Gets the collection of ServiceDescription instances to be imported.

Style

Ruft einen Wert ab, der den Typ des beim Import von ServiceDescriptions-Werten generierten Codes (Client oder Server) bestimmt, oder legt diesen fest.Gets or sets a value that determines the style of code (client or server) that is generated when the ServiceDescriptions values are imported.

Methoden

AddServiceDescription(ServiceDescription, String, String)

Fügt die angegebene ServiceDescription der Auflistung zu importierender ServiceDescriptions-Werte hinzu.Adds the specified ServiceDescription to the collection of ServiceDescriptions values to be imported.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GenerateWebReferences(WebReferenceCollection, CodeDomProvider, CodeCompileUnit, WebReferenceOptions)

Kompiliert eine Auflistung der Webverweise, um einen Clientproxy oder einen Serverstub zu erzeugen.Compiles a collection of Web references to produce a client proxy or a server stub.

GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
Import(CodeNamespace, CodeCompileUnit)

Importiert die angegebenen ServiceDescriptions-Werte, die Code generieren wie von der Style-Eigenschaft angegeben.Imports the specified ServiceDescriptions values, that generates code as specified by the Style property.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Gilt für: