ServiceDescriptionImporter Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Espone un sistema per generare classi proxy client per i servizi Web XML.
public ref class ServiceDescriptionImporter
public class ServiceDescriptionImporter
type ServiceDescriptionImporter = class
Public Class ServiceDescriptionImporter
- Ereditarietà
-
ServiceDescriptionImporter
Esempio
Nell'esempio seguente viene illustrato l'uso ServiceDescriptionImporter della classe per generare codice client proxy che chiama un servizio Web XML descritto da un file 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);
}
}
}
Commenti
L'interfaccia di un servizio Web XML è in genere descritta da un file WSDL (Web Services Description Language). 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
.
La ServiceDescriptionImporter classe consente di importare facilmente le informazioni contenute in una descrizione WSDL in un System.CodeDom.CodeCompileUnit oggetto. Modificando il valore del parametro, è possibile indicare a un'istanza di generare una ServiceDescriptionImporter classe proxy client che fornisce la funzionalità del Style servizio Web chiamandola in modo trasparente o per generare una classe astratta che incapsula la funzionalità del servizio Web senza implementarla.
Il codice nell'oggetto risultante CodeCompileUnit può quindi essere chiamato direttamente o esportato nella lingua desiderata.
Costruttori
ServiceDescriptionImporter() |
Inizializza una nuova istanza della classe ServiceDescriptionImporter. |
Proprietà
CodeGenerationOptions |
Ottiene o imposta varie opzioni per la generazione del codice. |
CodeGenerator |
Ottiene o imposta il generatore del codice utilizzato dall'utilità di importazione della descrizione del servizio. |
ProtocolName |
Ottiene o imposta il protocollo utilizzato per accedere ai servizi Web XML descritti. |
Schemas |
Ottiene l'oggetto XmlSchemas utilizzato dalla proprietà ServiceDescriptions. |
ServiceDescriptions |
Ottiene l'insieme delle istanze ServiceDescription da importare. |
Style |
Ottiene o imposta un valore che determina lo stile di codice (client o server) generato quando vengono importati i valori ServiceDescriptions. |
Metodi
AddServiceDescription(ServiceDescription, String, String) |
Aggiunge l'oggetto ServiceDescription specificato all'insieme di valori della proprietà ServiceDescriptions da importare. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GenerateWebReferences(WebReferenceCollection, CodeDomProvider, CodeCompileUnit, WebReferenceOptions) |
Compila un insieme di riferimenti Web per produrre un proxy client o un stub server. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
Import(CodeNamespace, CodeCompileUnit) |
Importa i valori della proprietà ServiceDescriptions specificati, che generano il codice come specificato dalla proprietà Style. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |