ServiceDescriptionImporter Třída

Definice

Zpřístupňuje prostředky pro generování klientských proxy tříd pro webové služby 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
Dědičnost
ServiceDescriptionImporter

Příklady

Následující příklad ilustruje použití ServiceDescriptionImporter třídy pro generování kódu klienta proxy, který volá webovou službu XML popsanou souborem 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); 
    }
}
}

Poznámky

Rozhraní k webové službě XML je obvykle popsáno v souboru jazyka WSDL (Web Services Description Language).The interface to an XML Web service is typically described by a Web Services Description Language (WSDL) file. Například pokud chcete získat popis WSDL webové služby pomocí ASP.NET zveřejněné v http://localhost/service.asmx , jednoduše přejděte na 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.

ServiceDescriptionImporterTřída umožňuje snadno importovat informace obsažené v popisu WSDL do System.CodeDom.CodeCompileUnit objektu.The ServiceDescriptionImporter class allows you to easily import the information contained in a WSDL description into a System.CodeDom.CodeCompileUnit object. Úpravou hodnoty Style parametru můžete určit ServiceDescriptionImporter instanci buď k vygenerování klientské proxy třídy, která poskytuje funkce webové služby transparentním voláním nebo vygenerováním abstraktní třídy, která zapouzdřuje funkce webové služby bez jejich implementace.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.

Kód ve výsledném CodeCompileUnit objektu lze potom buď volat přímo, nebo exportovat v jazyce podle vašeho výběru.The code in the resulting CodeCompileUnit object can then either be called directly or exported in the language of your choice.

Konstruktory

ServiceDescriptionImporter()

Inicializuje novou instanci ServiceDescriptionImporter třídy.Initializes a new instance of the ServiceDescriptionImporter class.

Vlastnosti

CodeGenerationOptions

Získá nebo nastaví různé možnosti pro generování kódu.Gets or sets various options for code generation.

CodeGenerator

Získá nebo nastaví generátor kódu, který používá nástroj pro import popisu služby.Gets or sets the code generator used by the service description importer.

ProtocolName

Získá nebo nastaví protokol, který se používá pro přístup k popsaným webovým službám XML.Gets or sets the protocol used to access the described XML Web services.

Schemas

Získá XmlSchemas hodnotu použitou ServiceDescriptions vlastností.Gets the XmlSchemas used by the ServiceDescriptions property.

ServiceDescriptions

Získá kolekci ServiceDescription instancí, které mají být importovány.Gets the collection of ServiceDescription instances to be imported.

Style

Získává nebo nastavuje hodnotu, která určuje styl kódu (klienta nebo serveru), který se generuje při ServiceDescriptions importu hodnot.Gets or sets a value that determines the style of code (client or server) that is generated when the ServiceDescriptions values are imported.

Metody

AddServiceDescription(ServiceDescription, String, String)

Přidá zadaný ServiceDescription pro kolekci ServiceDescriptions hodnot, které mají být importovány.Adds the specified ServiceDescription to the collection of ServiceDescriptions values to be imported.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GenerateWebReferences(WebReferenceCollection, CodeDomProvider, CodeCompileUnit, WebReferenceOptions)

Zkompiluje kolekci webových odkazů a vytvoří klientský proxy server nebo zástupný kód serveru.Compiles a collection of Web references to produce a client proxy or a server stub.

GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
Import(CodeNamespace, CodeCompileUnit)

Importuje zadané ServiceDescriptions hodnoty, které generuje kód, který je určen Style vlastností.Imports the specified ServiceDescriptions values, that generates code as specified by the Style property.

MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Platí pro