Udostępnij za pośrednictwem


ServiceDescriptionImporter Klasa

Definicja

Uwidacznia metodę generowania klas serwera proxy klienta dla usług sieci Web XML.

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

Przykłady

Poniższy przykład ilustruje użycie ServiceDescriptionImporter klasy do generowania kodu klienta serwera proxy, który wywołuje usługę sieci Web XML opisaną przez plik 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); 
    }
}
}

Uwagi

Interfejs usługi sieci Web XML jest zazwyczaj opisywany przez plik WSDL (Web Services Description Language). Aby na przykład uzyskać opis WSDL usługi sieci Web przy użyciu ASP.NET uwidocznionych w lokalizacji http://localhost/service.asmx, po prostu przejdź do http://localhost/service.asmx?WSDLadresu .

Klasa ServiceDescriptionImporter umożliwia łatwe importowanie informacji zawartych w opisie System.CodeDom.CodeCompileUnit WSDL do obiektu. Dostosowując wartość parametru Style , można poinstruować ServiceDescriptionImporter wystąpienie, aby wygenerować klasę serwera proxy klienta, która zapewnia funkcjonalność usługi sieci Web przez przezroczyste wywołanie go lub wygenerować klasę abstrakcyjną, która hermetyzuje funkcjonalność usługi sieci Web bez jej zaimplementowania.

Kod w wynikowym CodeCompileUnit obiekcie można następnie wywołać bezpośrednio lub wyeksportować w wybranym języku.

Konstruktory

ServiceDescriptionImporter()

Inicjuje nowe wystąpienie klasy ServiceDescriptionImporter.

Właściwości

CodeGenerationOptions

Pobiera lub ustawia różne opcje generowania kodu.

CodeGenerator

Pobiera lub ustawia generator kodu używany przez importera opisu usługi.

ProtocolName

Pobiera lub ustawia protokół używany do uzyskiwania dostępu do opisanych usług sieci Web XML.

Schemas

Pobiera wartość XmlSchemas używaną ServiceDescriptions przez właściwość .

ServiceDescriptions

Pobiera kolekcję ServiceDescription wystąpień do zaimportowania.

Style

Pobiera lub ustawia wartość określającą styl kodu (klienta lub serwera), który jest generowany podczas importowania ServiceDescriptions wartości.

Metody

AddServiceDescription(ServiceDescription, String, String)

Dodaje określony ServiceDescription element do kolekcji ServiceDescriptions wartości do zaimportowania.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GenerateWebReferences(WebReferenceCollection, CodeDomProvider, CodeCompileUnit, WebReferenceOptions)

Kompiluje kolekcję odwołań sieci Web w celu utworzenia serwera proxy klienta lub wycinku serwera.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
Import(CodeNamespace, CodeCompileUnit)

Importuje określone ServiceDescriptions wartości, które generują kod określony przez Style właściwość.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy