ServiceDescriptionImporter Classe

Definizione

Espone un sistema per generare classi proxy client per i servizi Web XML.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
Ereditarietà
ServiceDescriptionImporter

Esempio

Nell'esempio seguente viene illustrato l'utilizzo della ServiceDescriptionImporter classe per generare codice client proxy che chiama un servizio Web XML descritto da un file WSDL.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); 
    }
}
}

Commenti

L'interfaccia di un servizio Web XML viene in genere descritta da un file Web Services Description Language (WSDL).The interface to an XML Web service is typically described by a Web Services Description Language (WSDL) file. Ad esempio, per ottenere una descrizione WSDL di un servizio Web usando ASP.NET esposto in http://localhost/service.asmx , è sufficiente passare a 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.

La ServiceDescriptionImporter classe consente di importare facilmente le informazioni contenute in una descrizione WSDL in un System.CodeDom.CodeCompileUnit oggetto.The ServiceDescriptionImporter class allows you to easily import the information contained in a WSDL description into a System.CodeDom.CodeCompileUnit object. Modificando il valore del Style parametro, è possibile istruire un' ServiceDescriptionImporter istanza per generare una classe proxy client che fornisca la funzionalità del servizio Web chiamandola in modo trasparente o per generare una classe astratta che incapsula la funzionalità del servizio Web senza implementarla.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.

Il codice nell'oggetto risultante CodeCompileUnit può quindi essere chiamato direttamente o esportato nel linguaggio scelto.The code in the resulting CodeCompileUnit object can then either be called directly or exported in the language of your choice.

Costruttori

ServiceDescriptionImporter()

Inizializza una nuova istanza della classe ServiceDescriptionImporter.Initializes a new instance of the ServiceDescriptionImporter class.

Proprietà

CodeGenerationOptions

Ottiene o imposta varie opzioni per la generazione del codice.Gets or sets various options for code generation.

CodeGenerator

Ottiene o imposta il generatore del codice utilizzato dall'utilità di importazione della descrizione del servizio.Gets or sets the code generator used by the service description importer.

ProtocolName

Ottiene o imposta il protocollo utilizzato per accedere ai servizi Web XML descritti.Gets or sets the protocol used to access the described XML Web services.

Schemas

Ottiene l'oggetto XmlSchemas utilizzato dalla proprietà ServiceDescriptions.Gets the XmlSchemas used by the ServiceDescriptions property.

ServiceDescriptions

Ottiene l'insieme delle istanze ServiceDescription da importare.Gets the collection of ServiceDescription instances to be imported.

Style

Ottiene o imposta un valore che determina lo stile di codice (client o server) generato quando vengono importati i valori ServiceDescriptions.Gets or sets a value that determines the style of code (client or server) that is generated when the ServiceDescriptions values are imported.

Metodi

AddServiceDescription(ServiceDescription, String, String)

Aggiunge l'oggetto ServiceDescription specificato all'insieme di valori della proprietà ServiceDescriptions da importare.Adds the specified ServiceDescription to the collection of ServiceDescriptions values to be imported.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GenerateWebReferences(WebReferenceCollection, CodeDomProvider, CodeCompileUnit, WebReferenceOptions)

Compila un insieme di riferimenti Web per produrre un proxy client o un stub server.Compiles a collection of Web references to produce a client proxy or a server stub.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
Import(CodeNamespace, CodeCompileUnit)

Importa i valori della proprietà ServiceDescriptions specificati, che generano il codice come specificato dalla proprietà Style.Imports the specified ServiceDescriptions values, that generates code as specified by the Style property.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a