Sdílet prostřednictvím


ServiceDescriptionImporter Třída

Definice

Zveřejňuje prostředek generování klientských proxy tříd pro webové služby XML.

public ref class ServiceDescriptionImporter
public class ServiceDescriptionImporter
type ServiceDescriptionImporter = class
Public Class ServiceDescriptionImporter
Dědičnost
ServiceDescriptionImporter

Příklady

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

Poznámky

Rozhraní webové služby XML je obvykle popsáno souborem WSDL (Web Services Description Language). Chcete-li například získat popis WSDL webové služby pomocí ASP.NET vystavené na http://localhost/service.asmxadrese , jednoduše přejděte na http://localhost/service.asmx?WSDL.

Třída ServiceDescriptionImporter umožňuje snadno importovat informace obsažené v popisu WSDL do objektu System.CodeDom.CodeCompileUnit . Úpravou hodnoty parametru Style můžete instruovat ServiceDescriptionImporter instanci tak, aby vygenerovala třídu proxy klienta, která poskytuje funkce webové služby transparentním voláním nebo generováním abstraktní třídy, která zapouzdřuje funkce webové služby bez jeho implementace.

Kód ve výsledném CodeCompileUnit objektu se pak může volat přímo nebo exportovat v jazyce podle vašeho výběru.

Konstruktory

ServiceDescriptionImporter()

Inicializuje novou instanci ServiceDescriptionImporter třídy.

Vlastnosti

CodeGenerationOptions

Získá nebo nastaví různé možnosti pro generování kódu.

CodeGenerator

Získá nebo nastaví generátor kódu používaný dovozcem popisu služby.

ProtocolName

Získá nebo nastaví protokol použitý pro přístup k popsaným webovým službám XML.

Schemas

XmlSchemas Získá použitou ServiceDescriptions vlastností.

ServiceDescriptions

Získá kolekci ServiceDescription instancí, které se mají importovat.

Style

Získá nebo nastaví hodnotu, která určuje styl kódu (klienta nebo serveru), který je generován při importu ServiceDescriptions hodnot.

Metody

AddServiceDescription(ServiceDescription, String, String)

Přidá zadaný ServiceDescription do kolekce ServiceDescriptions hodnot, které se mají importovat.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Zkompiluje kolekci webových odkazů pro vytvoření klientského proxy serveru nebo zástupného kódu serveru.

GetHashCode()

Slouží jako výchozí funkce hash.

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

Type Získá aktuální instanci.

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

Importuje zadané ServiceDescriptions hodnoty, které generuje kód určený vlastností Style .

MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

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

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro