ServiceDescriptionImporter Classe

Définition

Expose un moyen de générer des classes proxy client pour des services Web XML.

public ref class ServiceDescriptionImporter
public class ServiceDescriptionImporter
type ServiceDescriptionImporter = class
Public Class ServiceDescriptionImporter
Héritage
ServiceDescriptionImporter

Exemples

L’exemple suivant illustre l’utilisation de la ServiceDescriptionImporter classe pour générer du code client proxy qui appelle un service Web XML décrit par un fichier WSDL.

#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); 
    }
}
}

Remarques

L’interface d’un service web XML est généralement décrite par un fichier WSDL (Web Services Description Language). Par exemple, pour obtenir une description WSDL d’un service Web à l’aide d’ASP.NET exposée à http://localhost/service.asmx, accédez simplement à http://localhost/service.asmx?WSDL.

La ServiceDescriptionImporter classe vous permet d’importer facilement les informations contenues dans une description WSDL dans un System.CodeDom.CodeCompileUnit objet. En ajustant la valeur du Style paramètre, vous pouvez demander à une instance de générer une ServiceDescriptionImporter classe de proxy client qui fournit la fonctionnalité du service Web en l’appelant de manière transparente ou pour générer une classe abstraite qui encapsule la fonctionnalité du service Web sans l’implémenter.

Le code de l’objet résultant CodeCompileUnit peut ensuite être appelé directement ou exporté dans la langue de votre choix.

Constructeurs

ServiceDescriptionImporter()

Initialise une nouvelle instance de la classe ServiceDescriptionImporter.

Propriétés

CodeGenerationOptions

Obtient ou définit plusieurs options pour la génération de code.

CodeGenerator

Obtient ou définit le générateur de code utilisé par l'importateur de la description de service.

ProtocolName

Obtient ou définit le protocole utilisé pour accéder aux services Web XML décrits.

Schemas

Obtient les XmlSchemas utilisés par la propriété ServiceDescriptions.

ServiceDescriptions

Obtient la collection des instances ServiceDescription à importer.

Style

Obtient ou définit une valeur qui détermine le style de code (client ou serveur) qui est généré lorsque les valeurs ServiceDescriptions sont importées.

Méthodes

AddServiceDescription(ServiceDescription, String, String)

Ajoute le ServiceDescription spécifié à la collection de valeurs ServiceDescriptions à importer.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GenerateWebReferences(WebReferenceCollection, CodeDomProvider, CodeCompileUnit, WebReferenceOptions)

Compile une collection de références Web pour produire un proxy client ou un stub serveur.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
Import(CodeNamespace, CodeCompileUnit)

Importe les valeurs ServiceDescriptions spécifiées, ce qui génère du code comme spécifié par la propriété Style.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à